这是一个基于 Python 和 Tkinter 构建的图形界面加密工具。它使用 AES(CBC 模式)进行加密,使用 PBKDF2 进行密钥派生,为文本和文件提供高级别的安全性。
- 语言支持:可在英语和中文之间即时切换。
- 文本加密/解密:使用自定义签名(密码)安全地加密消息。
- 文件加密/解密:支持大文件处理,并带有进度跟踪。
- 拖放功能:轻松将文件拖入应用程序(需要
tkinterdnd2)。 - 安全性:
- 支持 AES-256(默认)、AES-192、AES-128。
- 使用 PBKDF2-HMAC-SHA256 进行密钥派生,迭代次数为 10,000 次。
- 每次操作都生成随机的 Salt 和 IV。
- PKCS7 填充。
- Python 3.10+
- 依赖包在
requirements.txt中列出
-
克隆或下载此仓库。
-
安装依赖:
bash
pip install -r requirements.txt注意:如果
tkinterdnd2安装失败,应用程序仍可运行,但无法使用拖放功能。
运行应用程序:
bash
python main.py
- 签名:在此处输入你的密码/口令。用于派生加密密钥。
- 确认签名:可选的可视化确认,用于锁定你的意图。
- 算法:选择 AES-128、AES-192 或 AES-256(默认)。
- 语言:在英语和中文界面之间切换。
- 设置输出目录:选择加密/解密文件的默认保存位置。
- 在底部文本框中输入文本。
- 点击 加密。
- 结果(Base64 编码)将显示在顶部的历史记录日志中。
- 将 Base64 编码的加密字符串粘贴到底部文本框中。
- 确保 签名 与加密时使用的签名一致。
- 点击 解密。
- 原始文本将显示在顶部的历史记录日志中。
- 加密文件:
- 将文件拖入顶部文本框或点击“选择文件”。
- 点击 加密文件。
- 文件将以
.enc扩展名保存在选定的输出目录(或同一文件夹)中。
- 解密文件:
- 将加密文件(
.enc)拖入底部文本框。 - 点击 解密文件。
- 文件将被解密,并以
.dec扩展名保存。
- 将加密文件(
- 密钥派生:
- 函数:
PBKDF2HMAC(SHA256) - 迭代次数:10,000
- Salt:16 字节(每次加密随机生成,存储在输出中)
- 函数:
- 加密:
- 算法:AES(CBC 模式)
- IV:16 字节(每次加密随机生成,存储在输出中)
- 填充:PKCS7(128 位块大小)
- 文件格式:
[Salt (16 字节)] [IV (16 字节)] [加密数据 ...]
(1 封私信) 什么是AES加密?详解AES加密算法原理流程 - 知乎
(1 封私信) 深入浅出:Base64编码原理详解 - 知乎
本仓库包含的加密/解密程序仅为学习、研究和实验目的而提供。作者不保证其安全性、完整性或适用性,使用本程序所产生的一切风险及后果由使用者自行承担。
- 非专业用途 本程序仅为教学示例,不适用于保护真实场景中的敏感数据。其加密实现可能包含漏洞,无法达到工业级安全标准。
- 禁止用于非法用途 使用者不得将本程序用于任何非法活动,包括但不限于侵犯隐私、破坏系统或违反当地法律法规的行为。作者对任何滥用行为概不负责。
- 无担保责任 本程序按“原样”提供,作者明确不承担任何明示或暗示的担保责任,包括但不限于对适用性、特定功能或安全性的担保。使用本程序造成的任何直接或间接损失,作者不承担法律责任。
- 自行承担风险 任何使用者应自行评估程序的安全性及合规性,并在必要时咨询安全专家或法律顾问。
- 请勿使用本程序处理真实敏感数据。
- 欢迎提交问题或改进代码,但请勿要求作者提供安全审计或技术支持。
- 如发现安全漏洞,请通过 GitHub Issues 告知。