CNA加解密数据算法完整开源

易语言 2020-06-03 14:25:43

优点:1.同一密码同一内容,加密N次后的会重复的密文机率为98999999分之一
(简单说就是基本上不会出现加密后重复的内容)
2.密码可以是任意长度(当然小于要加密文件长度以内是最好的)任意有效的字符(中英符...等)
3.可以用一个文件当作密码去加密另一个文件
4.支持任何格式的文件直接进行CNA加解密

缺点:对只有10个字节以下的文件加密感觉有点......(感觉没必要加密这么小的文件吧,,稍作修改也都可以加密)

电脑配置:14年华硕笔记本,i5 4G 500G(机械硬盘) 系统:win10(不是很流畅) 测时工具:手机计时
(感觉电脑取启动时间不准确)
效率补充说明:效率高低除算法外,还会因电脑配置、系统流畅度、运行时的环境(同时运行了多少程序)而影响。
再说下本算法的系统占用率,和正常复制粘贴文件差不多,不会占用多少资源。

原理简介:依然是数据集字节和密码集字节等的纠缠运算,引入8位随机数变量让数据不再重复,引入后实际密码长度会等 于原密码+8位随机数,8位随机数加密到数据中的,并打乱随机位置。解密时依然使用原密码。
最终完善版本:
---简单美化了下界面
---CNA加解密算法基本没变,只是把<临时变量 = 取空白字节集 (1)>移到8次循环的外面了。
---加密后文件存放位置在要加密的文件相同目录下,文件名标识CNA+
---解密后文件存放位置在要解密的文件相同目录下,文件名标识CNA-
---主要是加了状态条来显示状态、文件名、加解密进度提示(加了这个后效率和原来效率基本不变)