不可破解文件加密程序设计

  不可破解文件加密的原理在“不可破解文件加密方案”帖子里说明了,任何人都可以依据此方法做出不可破解的文件加密软件,这里是笔者的一种尝试。
  首先是如何得到真随机数,笔者已在多个帖子里介绍了多种方法,就不在此多述了。由于是加密软件首先要求输入用户密码,密码至少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

猜你喜欢

转载自blog.csdn.net/sjd163/article/details/7949455