不可破解文件加密程序设计
不可破解文件加密的原理在“不可破解文件加密方案”帖子里说明了,任何人都可以依据此方法做出不可破解的文件加密软件,这里是笔者的一种尝试。
首先是如何得到真随机数,笔者已在多个帖子里介绍了多种方法,就不在此多述了。由于是加密软件首先要求输入用户密码,密码至少5个字节多则不限,然后选择加密或解密。
程序得到密码后,根据密码用随机函数算出一些参数,这里称为密码相关参数共八个32位无符号整形数,用K1、K2,...K8表示。以备后面应用。
【加密】
1.选择明文
程序得到明文后,得到其长度N,用数组保存明文数据。
2.建立密钥
程序建立长度为N的真随机数密钥数组,用文件保存数组。
3.加密明文
用密钥数组加密明文数组,加密方法是将两个数组看成两个环,用K1和K2和N计算两个数组中的两个序列号作为计算起点,用K3算出四个方向之一,程序由起点开始逐字节做加法运算(用加法可以实现多次运算)
明文 + 密钥 = 密文
形成密文数组用文件保存。
4.加密密钥
以K4、K5、K6、K7为种子用随机函数值加密密钥,方法和上面一样,加密后的数组称为密密钥数组,用文件保存数组。
5.合并
合并密文数组和密密钥数组,用K8做种子用随机函数的值控制先后,顺序取密文和密钥字节对,排列成新数组,新数组以文件形式保存。加密到此结束。
【文件命名方法】
密钥文件名——原文件名的扩展名改为my。
组合文件名——原文件名加上“.zh”。
密密钥文件名——和密钥文件名同名
密文名——与原文件同名
由于程序有按钮导向是不会乱的。
【解密】
1.选择组合文件
程序根据组合文件名得到所有文件名和N。
2.分解
分解为密文和密密钥文件
3.解密密密钥
得到密钥数组
4.解密密文
用密钥数组解密密文数组得到明文数组存文件。
密文 - 密钥 = 明文
这里用减法是为了实现多次运算。解密结束。
【说明】
在退出程序时清理无用文件。
程序自动化程度低是出于增加破解难度和使用的灵活性。在加密明文和加密密钥时都可以做多次加密,甚至可以用外部软件加密这些中间过程文件。但需要注意解密时的次序问题。
由于每个明文字节需要一个密钥字节加密,所以组合文件长度会扩大一倍。
明文极限长度为 2G字节。
程序下载:http://clip2net.com/s/2floc