Thanks to visit codestin.com
Credit goes to github.com

Skip to content

TRFCUTTFwww/TextCrypt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TextCrypt - 便捷式离线文本加密解密工具

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。

安装

  1. 依赖要求

    • .NET 6.0 或更高版本运行时。
    • Terminal.Gui(用于交互式界面)。
    • SQLite(用于加密数据库功能)。
    • 其他依赖已包含在项目中(如 Konscious.Security.Cryptography、Spectre.Console)。
  2. 编译与运行

    git clone <repository-url>
    cd TextCrypt
    dotnet build
    dotnet run
  3. 预编译版本

    • 从 Releases 页面下载预编译的二进制文件,解压后运行 TextCrypt.exe(Windows)或 TextCrypt(Linux/macOS)。

使用方法

交互模式

运行程序无参数进入交互模式:

dotnet run

主菜单提供以下选项:

  1. 加密文本
  2. 解密文本
  3. 打开加密数据库
  4. 清除历史输出
  5. 修改程序参数(Argon2 内存、迭代次数、并行度、历史记录开关)
  6. V3 密钥管理(生成密钥对、重新生成公钥、列出公钥 SHA512)
  7. 挂载模式(解密、编辑、重新加密)
  8. 批量处理模式
  9. 退出程序

示例:加密文本

  1. 选择“1. 加密文本”。
  2. 选择输入方式(内置编辑器或外部编辑器)。
  3. 输入明文,保存后选择加密模式(V0、V0.5、V1、V2、V3)。
  4. 输入密码(或选择 V3 公钥文件)。
  5. 获取加密结果,可选择显示或保存到文件。

示例:挂载模式

  1. 选择“7. 挂载模式”。
  2. 输入密文或选择密文文件。
  3. 选择解密方式(密码或 V3 私钥)。
  4. 解密后编辑明文(使用默认编辑器)。
  5. 保存后选择是否重新设置密码/公钥,输出加密结果。

命令行模式

支持以下命令:

# 加密文本
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 help

示例:加密文件

textcrypt encryptfile input.txt encrypted.txt mypassword v2

示例:解密文本

textcrypt decrypt "encrypted_custom_base_string" mypassword

V3 密钥管理

  1. 选择“6. V3 密钥管理”。
  2. 选项:
    • 生成新密钥对(保存为 .pem 私钥和 .pub 公钥)。
    • 通过私钥重新生成公钥。
    • 列出所有公钥的 SHA512 校验和。

示例:生成密钥对

  1. 输入密钥前缀(如 mykey)。
  2. 生成 mykey.private.pemmykey.public.pub
  3. 使用公钥加密文本,私钥解密。

配置

配置文件存储在 ~/.textcrypt_config.json,包含:

  • MemorySizeKB:Argon2 内存大小(默认 256MB)。
  • Iterations:Argon2 迭代次数(默认 10)。
  • Parallelism:Argon2 并行度(默认等于处理器核心数)。
  • EnableHistory:是否启用历史记录(默认 true)。
  • HistoryPaths:历史文件路径列表。

通过交互菜单的“5. 修改程序参数”可调整配置。

安全注意事项

  • 密码安全:使用强密码,避免重复使用。
  • 私钥保护:V3 私钥文件应妥善保管,避免泄露。
  • 调试模式:DEBUG 构建会输出敏感信息(如密钥、盐值),仅限安全环境使用。
  • 临时文件:程序会创建临时文件(用于编辑明文),使用后会自动删除,但需确保磁盘安全。
  • V0/V0.5 模式:使用 ECB 模式,安全性较低,仅建议用于兼容旧系统。
  • 环境安全:在不受信任的设备上运行可能导致密钥泄露。

常见问题

  1. 密文解密失败怎么办?

    • 确保密码或私钥正确。
    • 检查密文是否完整,未被截断或篡改。
    • 确认加密模式(V0、V0.5、V1、V2、V3)是否匹配。
  2. 如何选择加密模式?

    • V2:推荐,安全性与效率平衡。
    • V3:适合需要非对称加密的场景(如跨用户共享)。
    • V1:旧架构,密文较长。
    • V0/V0.5:仅用于兼容旧系统或特定需求。
  3. 如何启用调试模式?

    • 仅在 DEBUG 构建中可用,自动启用。
    • 生产环境中禁止使用 DEBUG 版本。

许可证

MIT License

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages