麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > 易語言 > 正文

易語言CNA算法實現快速加密解密文件的代碼

2024-07-21 23:02:52
字體:
來源:轉載
供稿:網友

CNA文件加解密數據算法

.版本 2.支持庫 spec.支持庫 iext.程序集 窗口程序集_啟動窗口.子程序 __啟動窗口_創建完畢.局部變量 code, 字節集, , , 加密密碼.局部變量 test, 字節集, , , 要加密碼的數據字節集.局部變量 i, 整數型, , , 查看反饋信息' 簡單例子test = 到字節集 (“aaaaaaa aaa.*#(中。329}@#¥”)code = 到字節集 (“中。有 3a#”)CNA數據 (test, code, 1)調試輸出 (到文本 (test))CNA數據 (test, code, )調試輸出 (到文本 (test))' 直接用一個文件進行加解密測試。功能完整的。.子程序 CNA數據, 整數型, , 返回數1表示加密完成,返回0表示解密完成,返回10表示加密或解密碼失敗.參數 數據集, 字節集, 可空, 要加密的數據集.參數 密碼集, 字節集, 可空, 要加密的密碼集.參數 方式, 整數型, 可空, 1是加密,0或省略是解密.局部變量 j, 整數型, , , 計次變量.局部變量 i, 整數型, , , 密碼集長度.局部變量 k, 整數型, , , 數據集長度.局部變量 lk, 整數型, , , 計算對換對換位置變量.局部變量 t, 整數型, , , 計算對換對換位置變量.局部變量 對換位置組, 整數型, , "0", 存放8個位置數據.局部變量 臨時變量, 字節集, , , 臨時存放變量.局部變量 密碼疊加量, 整數型, , , 密碼疊加變量.局部變量 隨機數, 整數型, , , 隨機變量.局部變量 隨機變量集, 字節集, , , 隨機變量字節集.局部變量 單個對換位置, 整數型, , , 存放單個對換位置' 限制只加密大于大于或等于10字節以上長度的文件,密碼可以和文件一樣長,如果比文件長,那多出部分只能累加到密碼疊加量里,不能在數據集加密中進行混合' 小于10字節的文件可自行調整參數和算法.如果真 (方式 = 1 且 取字節集長度 (數據集) ≥ 10 且 取字節集長度 (密碼集) ≥ 1) ' >>>>>>>>>>>>>加密開始  ' ----------------------------------(1)計算密碼疊加量  j = 取字節集長度 (密碼集)  .計次循環首 (j, i)    密碼疊加量 = 密碼集 [i] + 密碼疊加量 + i × 15  .計次循環尾 ()  lk = 密碼疊加量 ' ---用于計算對換位置時使用  ' ----------------------------------(2)引入固定8位數隨機變量  置隨機數種子 ()  隨機數 = 取隨機數 (10000000, 98999999)  ' ----------------------------------(3)開始數據集加密  j = 取字節集長度 (密碼集)  .計次循環首 (取字節集長度 (數據集), i) ' ------開始加密數據    數據集 [i] = 數據集 [i] + 密碼集 [j] + 密碼疊加量 + 隨機數    j = j - 1    .如果真 (j = 0)      j = 取字節集長度 (密碼集)    .如果真結束  .計次循環尾 ()  ' ----------------------------------(4)開始把隨機數轉換隨機變量集加密,再合并到數據集中  隨機數 = 隨機數 + 密碼疊加量 ' ------第一次簡單混合加密  隨機變量集 = 到字節集 (到文本 (隨機數))  j = 取字節集長度 (密碼集)  .計次循環首 (取字節集長度 (隨機變量集), i) ' ------開始第二次加密隨機變量集    隨機變量集 [i] = 隨機變量集 [i] + 密碼集 [j] + 密碼疊加量    j = j - 1    .如果真 (j = 0)      j = 取字節集長度 (密碼集)    .如果真結束  .計次循環尾 ()  數據集 = 數據集 + 隨機變量集 ' ------數據集和隨機變量集合并  ' ----------------------------------(5)通過對數據集長度和密碼疊加變量的比例算法求出對換位置  t = 取字節集長度 (數據集)  .計次循環首 (8, i) ' ------先通過和密碼疊加變量計算出對應位置    加入成員 (對換位置組, t × lk ÷ (lk + t))    t = t - 1.69    lk = lk × 0.459  .計次循環尾 ()  ' ----------------------------------(6)開始對換隨機變量集在數據集里的位置  k = 取字節集長度 (數據集)  臨時變量 = 取空白字節集 (1)  .計次循環首 (8, i) ' ------ 開始對換    單個對換位置 = 對換位置組 [i]    臨時變量 [1] = 數據集 [單個對換位置]    數據集 [單個對換位置] = 數據集 [k]    數據集 [k] = 臨時變量 [1]    k = k - 1  .計次循環尾 ()  返回 (1).如果真結束.如果真 (方式 = 0 且 取字節集長度 (數據集) ≥ 10 且 取字節集長度 (密碼集) ≥ 1) ' --------------------解密  ' ----------------------------------(1)計算密碼疊加量,和加密部分(1)一樣  j = 取字節集長度 (密碼集)  .計次循環首 (j, i)    密碼疊加量 = 密碼集 [i] + 密碼疊加量 + i × 15  .計次循環尾 ()  lk = 密碼疊加量 ' ---用于計算對換位置時使用  ' ----------------------------------(2)通過對數據集長度和密碼疊加變量的比例算法求出對換位置,和加密碼部分(5)一樣  t = 取字節集長度 (數據集)  .計次循環首 (8, i)    加入成員 (對換位置組, t × lk ÷ (lk + t))    t = t - 1.69    lk = lk × 0.459  .計次循環尾 ()  ' ----------------------------------(3)開始對換隨機變量集在數據集里的位置,并把數據集和隨機變量集切分出來,對換位置和加密部分(6)略有不同  k = 取字節集長度 (數據集) - 7 ' ------ 開始反向對換  臨時變量 = 取空白字節集 (1)  .計次循環首 (8, i)    單個對換位置 = 對換位置組 [9 - i] ' ------ 開始反向對換    臨時變量 [1] = 數據集 [單個對換位置]    數據集 [單個對換位置] = 數據集 [k]    數據集 [k] = 臨時變量 [1]    k = k + 1  .計次循環尾 ()  k = 取字節集長度 (數據集)  隨機變量集 = 取字節集右邊 (數據集, 8) ' ------ 分割出隨機變量集  數據集 = 取字節集中間 (數據集, 1, k - 8) ' ------ 分割出數據集  ' ----------------------------------(4)開始解密出隨機數,和加密部分(4)取反向操作  j = 取字節集長度 (密碼集)  .計次循環首 (取字節集長度 (隨機變量集), i)    隨機變量集 [i] = 隨機變量集 [i] - 密碼集 [j] - 密碼疊加量    j = j - 1    .如果真 (j = 0)      j = 取字節集長度 (密碼集)    .如果真結束  .計次循環尾 ()  隨機數 = 到數值 (到文本 (隨機變量集))  隨機數 = 隨機數 - 密碼疊加量  ' ----------------------------------(5)開始解密數據集,和加密部分(3)取反向操作  j = 取字節集長度 (密碼集)  .計次循環首 (取字節集長度 (數據集), i)    數據集 [i] = 數據集 [i] - 密碼集 [j] - 密碼疊加量 - 隨機數    j = j - 1    .如果真 (j = 0)      j = 取字節集長度 (密碼集)    .如果真結束  .計次循環尾 ()  返回 (0).如果真結束返回 (10).子程序 _打開文件加密_被單擊.局部變量 file1, 整數型, , , 要加密的文件號.局部變量 file2, 整數型, , , 加密后新建的文件號.局部變量 code, 字節集, , , 要加密碼的密碼.局部變量 exc, 文本型, , "0", 取文件名格式用.局部變量 文件長度, 長整數型, , , 要加密的文件大小.局部變量 循環次數, 整數型, , , 加密循環次數.局部變量 FSO, 對象, , , 用于讀取文件屬性信息.局部變量 GetFile, 對象, , , 用于讀取文件屬性信息.局部變量 temp, 字節集, , , 臨時存放字節集.局部變量 i, 整數型, , , 提示加密進度用' 加密時是以80萬計/次讀入數據的,每次循環加密后的文件都會多出8字節的隨機密匙,所以解密時要以80.008萬/次讀入數據。code = 到字節集 (密碼編輯框.內容).如果真 (通用對話框1.打開 ())  file1 = 打開文件 (通用對話框1.文件名, #讀寫, )  FSO.創建 (“Scripting.FileSystemObject”, )  GetFile = FSO.對象型方法 (“GetFile”, 通用對話框1.文件名)  文件長度 = GetFile.讀數值屬性 (“Size”, )  exc = 分割文本 (通用對話框1.文件名, “/”, )  file2 = 打開文件 (取當前目錄 () + “/CNA+” + exc [取數組成員數 (exc)], #改寫, )  狀態條1.置文本 (0, “狀態:正在加密..”)  狀態條1.置文本 (1, “文件:” + 到文本 (exc [取數組成員數 (exc)]))  循環次數 = 到整數 (文件長度 \ 800000) + 1  .計次循環首 (循環次數, i)    temp = 讀入字節集 (file1, 800000)    CNA數據 (temp, code, 1)    寫出字節集 (file2, temp)    狀態條1.置文本 (2, “進度:” + 到文本 (取整 (i ÷ 循環次數 × 100)) + “%”) ' -----進度顯示以百分比方式顯現  .計次循環尾 ()  狀態條1.置文本 (0, “狀態:加密完成”)  關閉文件 (file2)  關閉文件 (file1).如果真結束.子程序 _打開文件解密_被單擊.局部變量 file1, 整數型, , , 要加密的文件號.局部變量 file2, 整數型, , , 加密后新建的文件號.局部變量 code, 字節集, , , 要加密碼的密碼.局部變量 exc, 文本型, , "0", 取文件名格式用.局部變量 文件長度, 長整數型, , , 要加密的文件大小.局部變量 循環次數, 整數型, , , 解密循環次數.局部變量 FSO, 對象, , , 用于讀取文件屬性信息.局部變量 GetFile, 對象, , , 用于讀取文件屬性信息.局部變量 temp, 字節集, , , 臨時存放字節集.局部變量 i, 整數型, , , 提示加密進度用' 注意: 加密時是以80萬計/次讀入數據的,每次循環加密后的文件都會多出8字節的隨機密匙,所以解密時要以80.008萬/次讀入數據。code = 到字節集 (密碼編輯框.內容).如果真 (通用對話框1.打開 ())  file1 = 打開文件 (通用對話框1.文件名, #讀寫, )  FSO.創建 (“Scripting.FileSystemObject”, )  GetFile = FSO.對象型方法 (“GetFile”, 通用對話框1.文件名)  文件長度 = GetFile.讀數值屬性 (“Size”, )  exc = 分割文本 (通用對話框1.文件名, “/”, )  file2 = 打開文件 (取當前目錄 () + “/CNA-” + exc [取數組成員數 (exc)], #改寫, )  狀態條1.置文本 (0, “狀態:正在解密..”)  狀態條1.置文本 (1, “文件:” + 到文本 (exc [取數組成員數 (exc)]))  循環次數 = 到整數 (文件長度 \ 800008) + 1 ' 注意要多出8字節  .計次循環首 (循環次數, i)    temp = 讀入字節集 (file1, 800008) ' 看文件大小讀入多少字節,如果文件非常大,則可以通過移動文件指針方式分段進行加密    CNA數據 (temp, code, )    寫出字節集 (file2, temp)    狀態條1.置文本 (2, “進度:” + 到文本 (取整 (i ÷ 循環次數 × 100)) + “%”) ' -----進度顯示以百分比方式顯現  .計次循環尾 ()  狀態條1.置文本 (0, “狀態:解密完成”)  關閉文件 (file1)  關閉文件 (file2).如果真結束

運行結果:

易語言,解密,加密,數據,文件

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到易語言教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 男女羞羞视频在线免费观看 | 日韩黄色片免费看 | 亚洲一区二区不卡视频 | 欧美日韩在线播放 | 黄色电影免费网址 | 日本成人在线免费 | 亚洲精品久久久久久下一站 | 国产日韩在线 | www.精品视频 | 久久蜜臀一区二区三区av | 亚洲第一视频 | 国产妇女乱码一区二区三区 | 精品不卡 | va视频| 欧美成人精品一区二区 | 色播久久 | 男女羞羞视频在线免费观看 | 在线中文字幕亚洲 | 国av在线| 久久艹精品 | 水多视频在线观看 | 国产精品www| 欧美粗暴analvideos| 国产精品嘿咻嘿咻在线播放 | 久久免费综合视频 | 中文字幕天堂在线 | 国产免费久久久久 | 国产精品亚洲综合一区二区三区 | 日本中文字幕久久 | 久久国产精品久久久久久久久久 | 一区二区三区视频在线观看 | 免费毛片随便看 | 欧美成人午夜 | 久久久一区二区精品 | 黄色特级大片 | 欧美 日韩 国产 成人 | 欧美黄在线 | 日本精品黄色 | 叉逼视频 | 成人福利在线免费观看 | 少妇一级淫片高潮流水电影 |