- 论坛徽章:
- 39
|
修改一个粗心的BUG:
//UCHAR pad=16-flen%16; //原代码
UCHAR pad=flen%16; //修改后
if(pad) pad=16-pad; //修改后
附件已更新.
这次绝对是新鲜出炉地, 昨天刚写完, 今天就给大家开了, 当然, 属于计划内的事. 语言为c++.
加密算法都是用现成的, 我的代码只解决方便易用的问题, 这次没写跨平台的, 图快, 偷懒了
前些天做TLS/SSL解密, 了解了一点OPENSSL的东西. 有个朋友需要一个文件加密工具, 问我rar自身的加密如何, 我说不知道, 闭源的, 不一定靠的住, 不如我给你做一个吧, 于是就做了这么个东西. 不过不光是因为他的要求, 其实我自己也需要一个靠的住的加密工具, 于是只好自己动手. 一个加密工具如果是闭源的, 无论他吹的天花乱坠也没有用, 因为可能有隐藏后门的危险, 所以要安全就必须开源, 接受检验.
我这个工具是RSA+AES的, RSA 2048位, AES 256位, 量子计算机出来前应该没有谁能破解的了吧? AES用于文件流数据的加密, RSA用于保护AES的密码. 开始时想纯粹用RSA来加密, 但是RSA的解密速度慢的无法接受, 太慢了, 所以后来折中了, 用AES来加密文件内容. 如果有认为256位AES不安全的请告诉我, 我有点担心这个, RSA2048位应该没什么可担心的.
生成的文件结构很简单, 256字节RSA公钥+256字节AES密码(被公钥加密)+1字节PADDING+文件加密数据.
加密时生成一个随机的256位AES密码用于加密文件数据. 解密时用私钥和公钥配合先解开文件中的AES密码, 然后用这个密码解开文件数据.
软件用法:
0. 在界面上晃几下鼠标, 产生一些随机事件的种子.
1. 生成一个公钥/私钥对, 会保存在当前目录下, 收好你的私钥放在安全的地方.
2. 装进公钥
3. 选择要加密的文件, 点击加密.
4. 装进私钥
5. 选择刚才生成的加密文件, 点击解密
目前私钥没有密码保护, 所以收好. 丢失私钥无法解密加过密的文件.
原码可以用VS2008打开编译, 相信大家都在用着. 编译需要准备好openssl库.
欢迎大家提意见一起完善, 本软件在sf.net上开了帐号: encryptor, 但管理员说我的介绍过于简短还没批.
[ 本帖最后由 醉卧水云间 于 2008-4-17 12:55 编辑 ] |
|