不可破解文件加密的原理在“不可破解文件加密方案”帖子里说明了,任何人都可以依据此方法做出不可破解的文件加密软件,这里是笔者的一种尝试。
首先是如何得到真随机数,笔者已在多个帖子里介绍了多种方法,就不在此多述了。由于是加密软件首先要求输入用户密码,密码至少5个字节多则不限,然后选择加密或解密。
程序得到密码后,根据密码用随机函数算出一些参数,这里称为密码相关参数共八个32位无符号整形数,用K1、K2,...K8表示。以备后面应用。
【加密】
1.选择明文
程序得到明文后,得到其长度N,用数组保存明文数据。
2.建立密钥
程序建立长度为N的真随机数密钥数组,用文件保存数组。
3.加密明文
用密钥数组加密明文数组,加密方法是将两个数组看成两个环,用K1和K2和N计算两个数组中的两个序列号作为计算起点,用K3算出四个方向之一,程序由起点开始逐字节做加法运算(用加法可以实现多次运算)
明文 + 密钥 = 密文
形成密文数组用文件保存。
4.加密密钥
以K4、K5、K6、K7为种子用随机函数值加密密钥,方法和上面一样,加密后的数组称为密密钥数组,用文件保存数组。
5.合并
合并密文数组和密密钥数组,用K8做种子用随机函数的值控制先后,顺序取密文和密钥字节对,排列成新数组,新数组以文件形式保存。加密到此结束。
【文件命名方法】
密钥文件名——原文件名的扩展名改为my。
组合文件名——原文件名加
首先是如何得到真随机数,笔者已在多个帖子里介绍了多种方法,就不在此多述了。由于是加密软件首先要求输入用户密码,密码至少5个字节多则不限,然后选择加密或解密。
程序得到密码后,根据密码用随机函数算出一些参数,这里称为密码相关参数共八个32位无符号整形数,用K1、K2,...K8表示。以备后面应用。
【加密】
1.选择明文
程序得到明文后,得到其长度N,用数组保存明文数据。
2.建立密钥
程序建立长度为N的真随机数密钥数组,用文件保存数组。
3.加密明文
用密钥数组加密明文数组,加密方法是将两个数组看成两个环,用K1和K2和N计算两个数组中的两个序列号作为计算起点,用K3算出四个方向之一,程序由起点开始逐字节做加法运算(用加法可以实现多次运算)
明文 + 密钥 = 密文
形成密文数组用文件保存。
4.加密密钥
以K4、K5、K6、K7为种子用随机函数值加密密钥,方法和上面一样,加密后的数组称为密密钥数组,用文件保存数组。
5.合并
合并密文数组和密密钥数组,用K8做种子用随机函数的值控制先后,顺序取密文和密钥字节对,排列成新数组,新数组以文件形式保存。加密到此结束。
【文件命名方法】
密钥文件名——原文件名的扩展名改为my。
组合文件名——原文件名加