QuickEncrypt是一款基于Qt框架开发的轻量级数据加密与解密开源软件。它提供了简便快捷的安全工具,帮助用户保护个人文件和资料免受未授权访问。
QuickEncrypt 是一款简单易用的数据安全工具,通过托盘图标、悬浮窗以及鼠标拖拽和右键菜单的操作模式提供多种功能:文件及文本的加密与解密(采用RC4+AES算法)、Hash值计算(MD5和SHA1)以及数据的安全擦除。其特色在于“智能压缩”加密方式。
### 功能介绍
- 对通过鼠标的文本进行加、解密操作
- 支持对剪贴板内的文本内容执行加、解密功能
- 文件的拖拽实现文件的加密与安全删除处理
- 提供鼠标拖入或复制到窗口中的数据计算MD5和SHA1哈希值的功能,包括文本及文件。
- 在进行文本或者文件的数据压缩时采用智能算法。
### 安全机制
**2.1 数据擦除策略**
当需要彻底清除一个已加密的文档时,QuickEncrypt 会执行以下步骤:
a) 将目标文件重命名为随机字符串;
b) 向该文件中填充32字节大小的数据块(每个数据块为0);
c) 刷新并关闭上述操作后的文件;
d) 再次将此临时文件的名称更改为另一个随机序列,随后重复步骤 b 和 c 的过程但这次写入的是全1位数值。
e) 最后截断该文件至长度为零,并删除。
**2.2 Hash算法**
使用OpenSSL 0.98版本中的MD5(产生128位哈希)和SHA-1(生成160位散列值)两种标准进行数据校验。
**2.3 密钥管理策略**
用户输入的密码会首先转换成UTF-8字节流,然后计算出其对应的MD5与SHA-1哈希。前者作为AES 128位加密密钥使用;后者则用于RC4算法生成所需密钥。
**2.4 文本加密流程**
a) 将原始文本转换为包含0终止符的UTF-8字节序列;
b) 对上一步骤得到的数据计算CRC32校验码,同时将该值添加到明文数据前部以供后续解密时验证。
c) 通过zlib压缩算法(级别9)尝试对上述信息进行压缩处理;如果能够获得更小的文件大小,则输出经过压缩后的字节数组作为加密内容。
d) 使用RC4流式加密技术(OpenSSL 0.98版本实现)来保护步骤 c 中生成的数据;
e) 再次利用AES CFB模式对上一步骤得到的结果进行分组处理和再编码。
f) 应用Base64算法将最终数据转换为文本格式,便于传输或存储。
g) 最后在加密后的字符串前加上标记QE:|作为识别标志。
**2.5 文件加密流程**
a) 判断文件扩展名是否属于常见压缩类型;如果是,则跳过后续的数据压缩步骤;
b) 分段读取原始文件数据(每1MB大小),并计算每个分块的MD5哈希值,用于解密时验证。
c) 尝试使用zlib算法对各子集进行压缩处理。如果成功获得更小的结果,则采用该形式输出;否则直接保存原样未压缩的数据;
d-e) 分别应用RC4流式加密和AES CFB模式对该数据段执行两次加密操作,确保安全性。
f) 最后将所有密文部分连续写入到新创建的文件中,并在原始基础上添加.enc作为扩展名。