一个基于口令的简单可靠的加密协议
 

加密:

  • 将口令T经过hash算法H1,得到K1
  • 保存K1
  • T经过hash算法H2,得到K2
  • 将数据DK2进行加密(算法EA),得到密文ED,销毁K2
  • 秘密保存口令T
解密:
  • 将将口令T经过hash算法H1,得到结果DK1
  • DK1K1进行比较,相同则认证通过
  • T经过hash算法H2,得到K2
  • 将密文数据EDK2EA对应的解密算法DA解密,得到明文D
假定:
hash算法H1H2可靠且不相同,加密算法EA和对应的解密算法DA可靠。即无法对算法进行攻击。
 
 
我将该协议写成了一个shell扩展,没有什么技术含量,不过有一定的实用价值
经过简单测试通过
 
源代码及编译好的dll见附件
 
 
使用技术:
ATL、Shell扩展
CryptAPI
 
功能:
将一个文件加密,加密后的文件名的扩展名为“.e”
将一个文件解密,解密后的文件的扩展名为“.d”
 
 
安装:
将CryptShellExt.DLL拷贝到硬盘的一个地方
用Regsvr32命令注册
 
使用:
在explerer中用鼠标右键点击一个文件,就会看到“Crypt...”和"Decrypt..."
 
卸载:
用regsvr32带参数-u反注册即可
 
 
编译环境:vc60,编译前,请先安装wtl71
运行环境:xp sp2

 
由于是写着玩的,做得比较粗糙,没有经过严格测试,也懒得写注释
而且加解密过程中也没有进度指示,有空我再完善一下,当然你也可自己修改
 
附件:
上传的附件 CryptShellExt.rar
wtl71.rar