找回密码
 立即注册
加密文件解密算法 | 易语言编程 2023-07-11 84 0star收藏 版权: . 保留作者信息 . 禁止商业使用 . 禁止修改作品
算法简称:CNA算法(全数据重写加密)



优点:1、相同的密码、相同的内容,加密N次后密文重复的概率为98999999分之一

          (简单来说,加密后基本上不会有重复的内容)

           2.密码可以是任意长度(当然小于要加密文件的长度是最好)任意有效字符(中英文字符...等)

           3.可以使用一个文件作为密码来加密另一个文件

           4.支持任意格式文件直接CNA加解密



缺点:加密小于10字节的文件感觉有点...(感觉这么小的文件没必要加密,稍微修改一下就可以加密)



电脑配置:2014华硕笔记本,i5 4G 500G(机械硬盘) 系统:win10(不是很流畅) 时间测量工具:手机计时

                 (感觉电脑的启动时间不准确)



文件操作:测试时,我在原文件的不同目录下创建了一个新的加密文件,以80万字节/次的速率加密后写入新文件中。

                 

加密效率:463M视频文件平均耗时13.15秒(不加密情况下正常复制粘贴5秒,不同目录粘贴7秒)。

                不知道是不是我的机器太慢)

                  3.78G安装系统文件.rar,平均约3分38秒。 (不同目录正常复制粘贴时间为2分49秒)



解密效率:463M视频文件12.05秒,3.78G安装系统文件.rar,约3分14秒。 (整体时间会小于加密时间)



效率补充说明:除了算法之外,效率还会受到电脑配置、系统流畅度、运行环境(同时运行多少个程序)的影响。

                         另外,该算法的系统占用率与普通复制粘贴文件差不多,不会占用太多资源。



原理介绍:仍然是数据集字节和密码集字节等的纠缠操作,引入8位随机数变量,防止数据重复。引入后,实际的密码长度将等于原密码+8位随机数,8位随机数加密到数据中,并在随机位置打乱。解密时仍使用原密码。

详细请查看源代码。 <加密文件默认放在D:\下,请自行修改>;

               

最终完美版本:

--- 下界面简单美化

---CNA加解密算法基本不变,只是<临时变量=取空白字节集(1)>移至 8 个周期之外。

---加密后的文件与待加密文件存放在同一目录下,文件名标识CNA+

---解密文件的存储位置与待解密文件在同一目录下,文件名标识CNA-

---主要是添加了状态栏,显示状态、文件名、加解密进度提示(添加这个后,效率和原来的效率基本一致)

13065656703[下载].rar

130655alv1pt33jjltlt4z.jpg


上一篇:易语言读取宽字符文件名内容源码
下一篇:取当前PC登陆微信号易语言源码