TextCrypt 是一款功能强大的离线文本加密解密工具,旨在为用户提供安全、便捷的文本加密与解密体验。支持多种加密模式(V0、V0.5、V1、V2、V3),并提供直观的交互界面和命令行模式,适用于个人隐私保护、敏感数据存储等场景。
- 多种加密模式:
- V0:核心直加密模式(AES-256-ECB,无盐值,确定性加密)。
- V0.5:盐值随机模式(AES-256-ECB,增加随机性)。
- V1:双层加密(主密钥加密数据密钥,数据密钥加密文本,AES-GCM)。
- V2:直接加密(主密钥直接加密文本,AES-GCM,推荐)。
- V3:非对称加密(基于 ECIES,椭圆曲线集成加密方案,使用公钥加密)。
- 密码学安全:
- 使用 Argon2(密码派生算法,内存硬化)生成密钥。
- 支持 AES-GCM(带认证加密)和 AES-ECB(简单模式)。
- V3 模式采用 NIST P-521 椭圆曲线。
- 交互与命令行模式:
- 交互模式提供直观菜单,支持内置或外部编辑器。
- 命令行模式支持快速加密/解密文本或文件。
- 历史记录:可启用文件路径历史记录,便于快速访问常用文件。
- 调试模式:提供详细的加密/解密参数输出(仅限 DEBUG 构建)。
- 挂载模式:解密后编辑明文并重新加密,适合临时修改加密内容。
- 批量处理:支持批量加密/解密,适合处理大量文本或文件。
- 密钥管理:支持生成、导出 V3 密钥对,并通过私钥重新生成公钥。
- 跨平台:基于 .NET 开发,支持 Windows、Linux 和 macOS。
-
依赖要求:
- .NET 6.0 或更高版本运行时。
- Terminal.Gui(用于交互式界面)。
- SQLite(用于加密数据库功能)。
- 其他依赖已包含在项目中(如 Konscious.Security.Cryptography、Spectre.Console)。
-
编译与运行:
git clone <repository-url> cd TextCrypt dotnet build dotnet run
-
预编译版本:
- 从 Releases 页面下载预编译的二进制文件,解压后运行
TextCrypt.exe(Windows)或TextCrypt(Linux/macOS)。
- 从 Releases 页面下载预编译的二进制文件,解压后运行
运行程序无参数进入交互模式:
dotnet run主菜单提供以下选项:
- 加密文本
- 解密文本
- 打开加密数据库
- 清除历史输出
- 修改程序参数(Argon2 内存、迭代次数、并行度、历史记录开关)
- V3 密钥管理(生成密钥对、重新生成公钥、列出公钥 SHA512)
- 挂载模式(解密、编辑、重新加密)
- 批量处理模式
- 退出程序
- 选择“1. 加密文本”。
- 选择输入方式(内置编辑器或外部编辑器)。
- 输入明文,保存后选择加密模式(V0、V0.5、V1、V2、V3)。
- 输入密码(或选择 V3 公钥文件)。
- 获取加密结果,可选择显示或保存到文件。
- 选择“7. 挂载模式”。
- 输入密文或选择密文文件。
- 选择解密方式(密码或 V3 私钥)。
- 解密后编辑明文(使用默认编辑器)。
- 保存后选择是否重新设置密码/公钥,输出加密结果。
支持以下命令:
# 加密文本
textcrypt encrypt <text_to_encrypt> <password> [v1|v2|v0.5|v0]
# 解密文本
textcrypt decrypt <encrypted_text> <password>
# 加密文件
textcrypt encryptfile <input_file_path> <output_file_path> <password> [v1|v2|v0.5|v0]
# 解密文件
textcrypt decryptfile <input_file_path> <output_file_path> <password>
# 显示帮助
textcrypt helptextcrypt encryptfile input.txt encrypted.txt mypassword v2textcrypt decrypt "encrypted_custom_base_string" mypassword- 选择“6. V3 密钥管理”。
- 选项:
- 生成新密钥对(保存为
.pem私钥和.pub公钥)。 - 通过私钥重新生成公钥。
- 列出所有公钥的 SHA512 校验和。
- 生成新密钥对(保存为
- 输入密钥前缀(如
mykey)。 - 生成
mykey.private.pem和mykey.public.pub。 - 使用公钥加密文本,私钥解密。
配置文件存储在 ~/.textcrypt_config.json,包含:
MemorySizeKB:Argon2 内存大小(默认 256MB)。Iterations:Argon2 迭代次数(默认 10)。Parallelism:Argon2 并行度(默认等于处理器核心数)。EnableHistory:是否启用历史记录(默认 true)。HistoryPaths:历史文件路径列表。
通过交互菜单的“5. 修改程序参数”可调整配置。
- 密码安全:使用强密码,避免重复使用。
- 私钥保护:V3 私钥文件应妥善保管,避免泄露。
- 调试模式:DEBUG 构建会输出敏感信息(如密钥、盐值),仅限安全环境使用。
- 临时文件:程序会创建临时文件(用于编辑明文),使用后会自动删除,但需确保磁盘安全。
- V0/V0.5 模式:使用 ECB 模式,安全性较低,仅建议用于兼容旧系统。
- 环境安全:在不受信任的设备上运行可能导致密钥泄露。
-
密文解密失败怎么办?
- 确保密码或私钥正确。
- 检查密文是否完整,未被截断或篡改。
- 确认加密模式(V0、V0.5、V1、V2、V3)是否匹配。
-
如何选择加密模式?
- V2:推荐,安全性与效率平衡。
- V3:适合需要非对称加密的场景(如跨用户共享)。
- V1:旧架构,密文较长。
- V0/V0.5:仅用于兼容旧系统或特定需求。
-
如何启用调试模式?
- 仅在 DEBUG 构建中可用,自动启用。
- 生产环境中禁止使用 DEBUG 版本。
MIT License