阿摩線上測驗 登入

申論題資訊

試卷:111年 - 111 專技高考_資訊技師:程式設計#111894
科目:程式設計
年份:111年
排序:0

申論題內容

三、假設有一亂數函式 Rand(){..}可傳回一隨機實數亂數,其範圍:0 ≤ Rand() < 1。 請利用此亂數函式,以 Java 或 C++撰寫一檔案加密程式,可以針對指定 的 檔 案 進 行 簡 單 的 加 密 。 加 密 方 式 則 是 先 建 立 一 個 查 找 表 (Lookup Table),如下圖所示,表格上方為 0~255 依序的索引數值,表格內則是 將 0~255 共 256 個數字,以隨機方式填入,並保證是一對一對應。
637c7259dc528.jpg
針對指定檔案的每一個 Byte(範圍:0~255) ,使用此查找表進行對應而 產生新的數字來進行加密。例如:若檔案某一 Byte 的值是 7,則經上述 查找表對應將轉變為加密值 159。假設此加解密程式名稱為 endecode, 須被加密的檔案檔名為 list.txt,則在命令行(command line)進行加密的 指令為 endecode list.txt。指令執行後會產生兩個檔案,list.txt.en 及 list.txt.key。list.txt.en 即為 list.txt 加密後的檔案,list.txt.key 則為查找表 的內容,此為解密時需要,因此必須先逆轉查找表的對應(例如原本 1 對應 45,則反轉為 45 對應 1)後再存成檔案。(25 分)