这个仓库包含了CTF比赛中常见密码问题的Python解决方案集合。每个脚本都提供了交互式界面,方便用户快速使用各种加密、解密和分析功能。
## 目录结构
– `base_crypto.py` – 古典加密算法工具
– `encoding_tools.py` – 编码解码工具
– `hash_tools.py` – 哈希计算与分析工具
– `frequency_analysis.py` – 频率分析与密码破解工具
– `modern_crypto.py` – 现代加密算法工具
– `steganography_tools.py` – 隐写术和二进制分析工具
– `ctf_toolkit.py` – 其他CTF密码工具
## 工具详情
### 1. base_crypto.py
**功能**:实现各种古典加密算法
**包含算法**:
– 凯撒密码(Caesar Cipher)
– 维吉尼亚密码(Vigenère Cipher)
– 转置密码(Transposition Cipher)
– 栅栏密码(Rail-fence Cipher)
– 仿射密码(Affine Cipher)
– 培根密码(Bacon Cipher)
– 普莱费尔密码(Playfair Cipher)
**使用的库**:
– itertools(标准库)
– string(标准库)
**使用方法**:
“`
python base_crypto.py
“`
然后按照提示选择相应的功能。
### 2. encoding_tools.py
**功能**:提供各种编码/解码功能
**包含编码**:
– Base64编码/解码
– Base32编码/解码
– Base16编码/解码
– 十六进制编码/解码
– URL编码/解码
– 二进制转换
– 莫尔斯电码编解码
– ROT编码家族(ROT13等)
**使用的库**:
– base64(标准库)
– binascii(标准库)
– codecs(标准库)
– urllib(标准库)
**使用方法**:
“`
python encoding_tools.py
“`
然后按照提示选择相应的功能。
### 3. hash_tools.py
**功能**:哈希计算与分析
**包含功能**:
– 多种哈希算法计算(MD5, SHA系列, BLAKE2等)
– HMAC计算
– 文件哈希验证
– 哈希类型识别
– 简单哈希破解
**使用的库**:
– hashlib(标准库)
– hmac(标准库)
**使用方法**:
“`
python hash_tools.py
“`
然后按照提示选择相应的功能。
### 4. frequency_analysis.py
**功能**:频率分析与密码破解工具
**包含功能**:
– 字符频率分析
– 英文频率对比
– 替换密码破解
– 查找重复序列
– 重合指数计算
– Vigenère密钥长度估计
– N-gram分析
**使用的库**:
– collections(标准库)
– itertools(标准库)
– string(标准库)
– re(标准库)
**使用方法**:
“`
python frequency_analysis.py
“`
然后按照提示选择相应的功能。
### 5. modern_crypto.py
**功能**:现代加密算法实现
**包含算法**:
– RSA密钥生成、加密/解密、签名/验证
– AES加密/解密(多种模式)
– 基于密码的密钥派生(PBKDF2)
– 文件加密/解密
**使用的库**:
– Crypto(需要安装: `pip install pycryptodome`)
– base64(标准库)
– os(标准库)
**使用方法**:
“`
python modern_crypto.py
“`
然后按照提示选择相应的功能。
### 6. steganography_tools.py
**功能**:隐写术和二进制文件分析
**包含功能**:
– 图像LSB隐写检测与提取
– 图像LSB隐写
– 文件签名/魔术数字分析
– 隐藏数据提取(附加数据、zlib压缩数据等)
– XOR暴力破解
– 位分析和熵计算
**使用的库**:
– PIL(需要安装: `pip install pillow`)
– numpy(需要安装: `pip install numpy`)
– os(标准库)
– re(标准库)
– binascii(标准库)
– struct(标准库)
– zlib(标准库)
**使用方法**:
“`
python steganography_tools.py
“`
然后按照提示选择相应的功能。
### 7. ctf_toolkit.py
**功能**:其他CTF常见密码工具
**包含工具**:
– Brainfuck解释器
– Ook!解码器
– 素数检查
– 因数分解
– 模逆元计算
– 二维码解码
– 频率分析破解凯撒密码
– 盲文解码
– DNA序列解码
– 颜色格式转换
**使用的库**:
– math(标准库)
– re(标准库)
– string(标准库)
– itertools(标准库)
– base64(标准库)
– collections(标准库)
– sympy(可选,用于高级数论计算: `pip install sympy`)
– pyzbar(可选,用于二维码解码: `pip install pyzbar pillow`)
**使用方法**:
“`
python ctf_toolkit.py
“`
然后按照提示选择相应的功能。
## 安装依赖
大多数工具只使用Python标准库,但部分高级功能需要安装额外的依赖:
“`bash
# 安装所有可选依赖
pip install pycryptodome pillow numpy sympy pyzbar
“`
## 使用提示
1. 所有脚本都提供了交互式界面,按照提示输入相应的参数即可使用。
2. 对于文件操作功能,请确保输入正确的文件路径。
3. 某些加密算法可能对输入数据有特定要求(如格式、长度限制等),使用时请注意错误提示。
4. 在处理大型文件时,请耐心等待,尤其是进行暴力破解等计算密集型操作时。
## 注意事项
– 这些工具仅用于合法的CTF比赛和学习目的。
– 某些加密算法的实现可能不是最优的,但足以应对CTF比赛中的常见问题。
– 在实际使用中,如果遇到性能问题或功能限制,可以考虑使用更专业的密码学库。
## 贡献
欢迎提交Issue或Pull Request来改进这些工具。如果您发现了新的密码类型或有更好的实现方法,请随时贡献您的代码。
