修改交互式Python脚本支持启动传参 实现Bitwarden文件密码试解密
问题背景
丢失了自己的Bitwarden文件密码,计划使用BitwardenDecrypt脚本进行解密,目前已准备好存储候选密码的CSV字典文件,也已经在Windows命令行手动测试过类似文件的解密流程可正常运行。
预期工作流
需要将BitwardenDecrypt集成到自定义脚本中,实现如下流程:
- 从CSV文件中读取候选密码
- 调用BitwardenDecrypt并传入读取到的候选密码
- 检查命令执行的退出码
- 若退出码不为0,继续尝试下一个候选密码
BitwardenDecrypt脚本修改方案
你可以直接修改原版Python脚本的输入逻辑,让它支持接收启动参数,具体修改步骤如下:
- 找到脚本中原本读取用户输入密码的代码段,原版默认是调用
input()函数交互式提示输入密码,把这部分替换为接收命令行参数即可 - 在脚本开头导入
sys模块,通过sys.argv获取传入的参数,比如第2个参数(索引为1)作为Bitwarden备份文件路径,第3个参数(索引为2)作为传入的候选密码 - 新增退出码返回逻辑:解密成功时调用
sys.exit(0),解密失败时调用sys.exit(1),方便外层脚本判断执行结果
参考修改代码段
# 脚本开头新增导入sys模块 import sys # 替换原交互式输入部分的代码 if len(sys.argv) < 3: print("用法:python BitwardenDecrypt.py <备份文件路径> <候选密码>") sys.exit(2) backup_path = sys.argv[1] candidate_pwd = sys.argv[2] # 原有解密逻辑不变,在解密成功的分支添加 sys.exit(0) # 在解密失败的分支添加 sys.exit(1)
Windows环境外层遍历脚本示例
你可以直接写一个bat脚本执行字典遍历,无需额外依赖:
@echo off set "backup_file=替换为你的Bitwarden备份文件完整路径" for /f "tokens=*" %%a in (替换为你的字典CSV文件路径) do ( echo 正在尝试密码:%%a python BitwardenDecrypt.py "%backup_file%" "%%a" if %errorlevel% equ 0 ( echo 匹配到正确密码:%%a pause exit /b 0 ) ) echo 所有候选密码尝试完毕,未找到匹配密码 pause
内容的提问来源于stack exchange,提问作者Josh Beckmann
相关产品推荐
相关产品推荐

