A comprehensive encryption tool supporting multiple algorithms
Project description
加密工具 (CryptoTool)
这是一个基于Python的加密工具,提供了多种加密算法的实现,包括AES对称加密、RSA非对称加密以及混合加密方案。
功能特点
- AES对称加密/解密
- RSA非对称加密/解密
- 混合加密方案(AES + RSA)
- 文件加密/解密支持
- 完整的错误处理和日志记录
- 支持命令行操作
安装
系统要求
- Python 3.6 或更高版本
- MySQL 数据库(用于密钥存储)
- 对于 GUI 功能,需要安装 tkinter(Python 标准库的一部分)
依赖说明
项目依赖以下 Python 包:
python-dotenv>=1.0.0:用于环境变量管理cryptography>=41.0.0:用于加密操作python-docx==0.8.11:用于处理 Word 文档docx2txt==0.8:用于从 Word 文档提取文本pycryptodome>=3.18.0:用于加密操作mysql-connector-python>=8.0.0:用于 MySQL 数据库连接psutil>=5.9.0:用于系统资源监控
注意:
tkinter是 Python 标准库的一部分,通常随 Python 一起安装- 如果使用 GUI 功能时遇到问题,可能需要单独安装:
- Windows:通常已包含在 Python 安装中
- Linux:
sudo apt-get install python3-tk(Ubuntu/Debian)或sudo yum install python3-tkinter(CentOS/RHEL) - macOS:通常已包含在 Python 安装中
通过PyPI安装(推荐)
pip install huawuque-cryptool
从源码安装
- 克隆项目到本地:
git clone https://github.com/huawuque/cryptool.git
cd cryptool
- 创建并激活虚拟环境:
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
- 安装依赖:
pip install -r requirements.txt
配置
在使用工具之前,您需要配置以下环境变量。创建一个 .env 文件在项目根目录,包含以下内容:
# 数据库配置
DB_HOST=localhost
DB_USER=your_db_user
DB_PASSWORD=your_db_password
DB_NAME=your_db_name
DB_PORT=3306
# 主密钥(用于加密存储的敏感信息)
MASTER_KEY=your_master_key
# 日志配置(可选)
LOG_LEVEL=INFO
LOG_FILE=logs/crypto.log
注意事项:
- 所有配置项都是必需的,除了 LOG_LEVEL 和 LOG_FILE
- 主密钥(MASTER_KEY)应该是足够长的随机字符串
- 确保数据库已经创建并且用户有适当的权限
- 不要将包含敏感信息的 .env 文件提交到版本控制系统
使用方法
命令行使用
安装后,您可以通过cryptool命令在命令行中使用该工具:
# 查看帮助
cryptool --help
# 运行示例演示
cryptool example
# AES加密
cryptool aes-encrypt "要加密的文本"
# AES解密
cryptool aes-decrypt "加密后的文本"
# RSA加密
cryptool rsa-encrypt "要加密的文本"
# RSA解密
cryptool rsa-decrypt "加密后的文本"
# 混合加密(结果保存到文件)
cryptool hybrid-encrypt "要加密的文本"
# 混合解密(从文件读取)
cryptool hybrid-decrypt hybrid_encrypted.json
# Base64编码
cryptool base64-encode "要编码的文本"
# Base64解码
cryptool base64-decode "编码后的文本"
Python代码中使用
from cryptool.core.app import CryptoApp
# 初始化加密工具
app = CryptoApp()
# AES加密示例
text = "这是一个测试文本"
encrypted_aes = app.encrypt_aes(text)
print(f"AES加密后: {encrypted_aes}")
decrypted_aes = app.decrypt_aes(encrypted_aes)
print(f"AES解密后: {decrypted_aes}")
# RSA加密示例
encrypted_rsa = app.encrypt_rsa(text)
print(f"RSA加密后: {encrypted_rsa}")
decrypted_rsa = app.decrypt_rsa(encrypted_rsa)
print(f"RSA解密后: {decrypted_rsa}")
# 混合加密示例
encrypted_hybrid = app.encrypt_hybrid(text)
print(f"混合加密后: {encrypted_hybrid}")
decrypted_hybrid = app.decrypt_hybrid(encrypted_hybrid)
print(f"混合解密后: {decrypted_hybrid}")
# Base64编码示例
encoded = app.encode_base64(text)
print(f"Base64编码后: {encoded}")
decoded = app.decode_base64(encoded)
print(f"Base64解码后: {decoded}")
注意事项
- 本工具生成的RSA密钥对存储在内存中,每次运行时会生成新的密钥对
- 日志文件默认保存在
logs目录下 - 混合加密结果通常保存为JSON格式
许可证
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
huawuque_cryptool-0.1.5.tar.gz
(32.3 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file huawuque_cryptool-0.1.5.tar.gz.
File metadata
- Download URL: huawuque_cryptool-0.1.5.tar.gz
- Upload date:
- Size: 32.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc460f95405f7e4beae219b595d3546ec3bd8dcca602be8b53d63b4beb6e4e18
|
|
| MD5 |
65ba5d366dcbb0578fde812269f744b0
|
|
| BLAKE2b-256 |
fa79d6cc84ba8b9c9e36108b1c31e347f3d53b1cc26627eaa5d6ee80a3e53b99
|
File details
Details for the file huawuque_cryptool-0.1.5-py3-none-any.whl.
File metadata
- Download URL: huawuque_cryptool-0.1.5-py3-none-any.whl
- Upload date:
- Size: 34.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7256600b2a59f904382e3a1b6bb23d93ed10b96fd14ccc060bfe1f993f8e72da
|
|
| MD5 |
ff6cc881a1d33d6d66185d12f947d008
|
|
| BLAKE2b-256 |
3eaae9ecc14ecaaa734229e83fe09163c9a0859811db88b4cb0da898ea70d3f5
|