-
基于Qt的开源小工具QuickEncrypt,用于保障数据安全
资源介绍
QuickEncrypt,数据安全小工具,采用托盘图标、悬浮窗、鼠标拖拽、右键菜单的简单操作模式,提供文件、文本的加解密(RC4+AES)、Hash(MD5+SHA1)、安全擦除等功能。独有的“智能压缩”加密模式。
1.功能介绍
对鼠标拖入的文本进行加解密
对剪贴板中的文本进行加解密
对鼠标拖入的文件进行加解密
对鼠标拖入的文件进行擦除
对鼠标拖入的文本进行Hash计算
对剪贴板中的文本进行Hash计算
对鼠标拖入的文件进行Hash计算
针对文本和文件加解密的智能数据压缩技术
支持超过4GB的大文件
2.安全机制
2.1 文件擦除策略
a.修改文件名为随机串;
b.以32字节的块向文件写入全0;
c.刷新数据,关闭文件;
d.修改文件名为随机串;
e.以32字节的块向文件写入全1;
f.刷新数据,关闭文件;
g.截断文件大小为0;
h.删除文件。
经测试常用数据恢复软件无法成功恢复原有数据。
2.2 Hash算法
使用OpenSSL 0.98提供的MD5(128位)和SHA1(160位)算法。
2.3 加解密密钥生成
将用户输入的密码明文转换成utf-8字节数组(不包含0结束符),计算MD5和SHA1,将MD5结果用作AES 128位密钥,将SHA1结果用作RC4密钥。
2.4 文本加密策略
a.将明文数据转换成utf-8字节数组(包含0结束符);
b.对明文字节数组计算CRC32校验码,用于解密时校验,并将CRC32值放在明文首字节之前;
c.尝试压缩步骤b的结果(zlib level9),若获得较小的压缩结果则输出压缩后的编码数组,否则放弃压缩,直接输出步骤b的结果;
d.对步骤c的结果进行RC4流加密(OpenSSL 0.98);
e.对步骤d的结果进行AES_CFB_128分组加密(OpenSSL 0.98);
f.对步骤e的结果进行Base64编码(OpenSSL 0.98);
g.将标记"QE:|"附加在步骤f的结果之前,输出结果。
2.5 文件加密策略
a.判断输入文件的扩展名是否是压缩格式,对常见压缩格式和流媒体编码文件不启用数据压缩功能;
b.以1MB大小分块,读入明文文件数据;
c.对分块的明文数据计算MD5,附加在待加密数据之前,用于解密时校验;
d.尝试压缩1MB大小的分块,若获得较小的压缩结果则输出压缩后的编码数据,否则直接输出原文;
e.对步骤d的结果进行RC4流加密(OpenSSL 0.98);
f.对步骤e的结果进行AES_CFB_128分组加密(OpenSSL 0.98);
g.将分块数据依次写入输出文件,输出文件的文件名是在原文件名后加".enc"。
- 上一篇: android日期时间选择器
- 下一篇: 日期加时间段选择器