尝试文件安全加密

  这里我们尝试安全加密,下述方法可能有漏洞、也可能有冗余的操作,欢迎批评指正。
一、文件加密

  a.得到密钥
  对密钥的要求是真随机数组,这些数据从来没有展示过,并且在第一次使用完后立即销毁。真随机数可以来自专用的发生器、或采自随机的物理事件,在使用前再做一次检验,发现不均匀或者有连续0等严重缺陷加以修补。
  b.加密明文
  首先需要得到用户密码,用户密码的作用是控制程序流程,随意选取一段和明文长度一样的真随机数组成工作密钥数组。用这个数组加密明文,根据用户密码选取明文串和密钥串的运算起点,和运算方向,加密算法采用无符号的加法(解密用减法)。
  加密完成后得到密文数组装入密文文件A。
  c.密钥处理
  工作密钥串在解密时还要用到,需要妥善保护。这里的做法是程序里准备几个长周期性能优良的随机函数,用它们组合成多种加密方式供用户选择使用,用于加密工作密钥串得到密文文件B,随机函数的种子由用户密码通过计算得到,加密算法采用无符号的加法(解密用减法)。
  d.数据完整性处理
  为了确保数据的完整性,计算文件A和B的32位CRC值附在文件后面,用于检查文件的完整性。

  现在加密已经完成,文件A和B可以保存或传递了。

二、文件解密
  a.得到文件A和B,做完整性检测。
  b.解密文件B
  首先需要得到和加密时一样的用户密码,选择和加密时一样的方式进行解密,得到工作密钥。
  c.解密文件A
  有了工作密钥就可以解密文件A得到明文了。

三、用户密码的传递
  通信双方除了使用相同的软件外。需要使用相同的用户密码和加密(解密)方式。最稳妥的方式是事前约定,例如第一次用什么密码什么方式、第二次用什么密码什么方式...。也可以通过其它加密软件加密后用电子邮件传递。也可以用电话密语传递信息。也可以指定一部字典,规定一些方式得到信息,到时候用电话(短信)传递页码就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值