本指南帮助你从原版 main.py 平滑迁移到优化版 main_optimized.py。
- 备份现有数据库
- 安装新依赖
- 测试配置文件
- 验证功能正常
- 性能对比测试
# 备份数据库
cp leaked_keys.db leaked_keys.db.backup
# 备份配置 (如果有 config_local.py)
cp config_local.py config_local.py.backup# 安装必需依赖
pip install aiosqlite>=0.19.0
pip install cryptography>=41.0.0
pip install pyyaml>=6.0.0
# 可选: 安装 uvloop (仅 Linux/Mac)
pip install uvloop>=0.19.0或使用更新后的 requirements.txt:
pip install -r requirements.txt如果你想使用外部配置文件:
# config.yaml 已经创建好了
# 根据需要调整参数优化版完全兼容现有配置:
config_local.py继续有效- 环境变量
GITHUB_TOKENS继续有效 - 所有原有配置项都保留
# 先测试统计功能 (不会修改数据)
python main_optimized.py --stats
# 如果统计正常,说明数据库兼容# 方式 1: 直接使用优化版
python main_optimized.py
# 方式 2: 重命名 (推荐)
mv main.py main_old.py
mv main_optimized.py main.py
python main.py✅ 所有扫描源 (GitHub/Pastebin/Gist/GitLab/SearchCode) ✅ 验证逻辑 (API Key 验证) ✅ 熵值过滤 ✅ 域名黑名单 ✅ Rich TUI 界面 ✅ 数据库结构 ✅ 导出功能 (文本/CSV)
🆕 异步数据库 - 性能提升 3-5倍
🆕 加密导出 - --export-encrypted
🆕 配置验证 - 启动时检查配置
🆕 性能监控 - 实时统计指标
🆕 外部配置 - config.yaml 支持
🆕 解密工具 - --decrypt
⚡ 队列系统 - 容量从 1000 提升到 10000 ⚡ 批量写入 - 减少 60%+ 数据库操作 ⚡ 错误处理 - 更精确的错误定位 ⚡ 资源清理 - 更完善的关闭逻辑
# 基础扫描
python main.py
# 导出
python main.py --export keys.txt
python main.py --export-csv keys.csv
# 统计
python main.py --stats
# 启用扫描源
python main.py --pastebin --gist# 所有原版命令都可用
python main_optimized.py --export keys.txt
python main_optimized.py --stats
# 新增: 加密导出
python main_optimized.py --export-encrypted keys_encrypted.bin
# 新增: 解密
python main_optimized.py --decrypt keys_encrypted.bin --key-file keys_encrypted.bin.key# config_local.py
GITHUB_TOKENS = [
"ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"ghp_yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy",
]
PROXY_URL = "http://127.0.0.1:7890"# 无需修改,直接使用export GITHUB_TOKENS="token1,token2,token3"
export PROXY_URL="http://127.0.0.1:7890"# config.yaml
# 注意: GitHub Tokens 仍需通过 config_local.py 或环境变量配置
scanner:
entropy_threshold: 3.8
max_file_size_kb: 500A: 不会。优化版与原版使用完全相同的数据库结构,可以无缝切换。
A: 不建议。两个版本会同时访问同一个数据库,可能导致冲突。
A:
# 停止优化版
Ctrl+C
# 切换回原版
python main.py数据库完全兼容,无需任何转换。
A: 根据测试:
- 数据库写入: 3-5倍
- 整体扫描速度: 2-3倍
- 队列容量: 10倍
A: 不必须。config.yaml 是可选的,所有配置都可以通过原有方式 (config_local.py 或环境变量) 完成。
A: 不必需。uvloop 仅在 Linux/Mac 上可用,可以进一步提升性能,但不是必需的。Windows 用户会自动使用默认事件循环。
python main_optimized.py --stats应该看到与原版相同的统计数据。
# 导出测试
python main_optimized.py --export test_export.txt --status valid
# 检查文件
cat test_export.txt# 加密导出
python main_optimized.py --export-encrypted test_encrypted.bin
# 解密验证
python main_optimized.py --decrypt test_encrypted.bin --key-file test_encrypted.bin.key# 运行 1 分钟测试
timeout 60 python main_optimized.py
# 检查是否有新 Key 发现
python main_optimized.py --stats运行性能测试脚本:
python benchmark.py预期输出:
=== 性能对比测试 ===
原版 (main.py):
- 数据库写入: 100 keys/s
- 扫描速度: 50 files/min
优化版 (main_optimized.py):
- 数据库写入: 400 keys/s (4x)
- 扫描速度: 120 files/min (2.4x)
✅ 优化版性能提升显著!
如果遇到问题需要回滚:
# 1. 停止优化版
Ctrl+C
# 2. 恢复数据库 (如果需要)
cp leaked_keys.db.backup leaked_keys.db
# 3. 切换回原版
python main.py
# 4. 报告问题
# 请在 GitHub Issues 中报告问题validator:
max_concurrency: 150 # 提升并发
num_workers: 4 # 增加工作线程
database:
batch_size: 100 # 增大批量
flush_interval: 3.0 # 减少刷新间隔
scanner:
async_download_concurrency: 80 # 提升下载并发validator:
max_concurrency: 50
num_workers: 1
database:
batch_size: 20
flush_interval: 10.0| 阶段 | 任务 | 预计时间 |
|---|---|---|
| 准备 | 备份数据 + 安装依赖 | 5 分钟 |
| 测试 | 验证功能 | 10 分钟 |
| 切换 | 正式使用优化版 | 1 分钟 |
| 验证 | 性能对比测试 | 5 分钟 |
总计: 约 20 分钟
遇到问题?
- 查看
OPTIMIZATION.md了解优化细节 - 运行
python main_optimized.py --help - 检查日志文件
- 在 GitHub Issues 报告问题
- 数据库统计正常
- 导出功能正常
- 扫描功能正常
- 性能有明显提升
- 无错误日志
全部完成? 恭喜,迁移成功! 🎉
文档版本: v1.0 更新时间: 2026-01-11