Python暴力破解脚本调用keyboard库无法输出随机数问题求助
代码问题排查&修正方案
现有代码核心问题
- 所有
import语句放在死循环内部,重复导入无意义且会拖慢运行效率 - 完全不需要搞自修改代码/动态编译执行的逻辑,属于冗余操作,且你构造的
rewrite_txt额外套了一层引号,执行时只会生成字符串常量,不会实际调用keyboard.write方法 random.randint(00000,100000)写法错误:Python3不支持数字前导零的十进制写法,且范围上限写100000会生成6位的100000,不符合5位密码的预期- 操作逻辑颠倒:现有代码先按回车再生成密码,不符合常规密码输入「先输密码再按回车」的流程
- 输出的数字如果不足5位不会自动补前导零,无法匹配固定位数的密码场景
修正后可直接运行的代码
import keyboard import random import time # 可自行调整密码位数 PASSWORD_LENGTH = 5 while True: # 生成指定位数的数字,不足补前导零 number = random.randint(0, 10 ** PASSWORD_LENGTH - 1) pwd_str = str(number).zfill(PASSWORD_LENGTH) print(f"trying {pwd_str}") # 输入密码+按回车 keyboard.write(pwd_str) keyboard.press_and_release('enter') # 可根据实际场景调整间隔时间,避免输入过快系统识别失败 time.sleep(1)
注意事项
- 运行脚本需要管理员/root权限,否则
keyboard库无法获取全局输入权限 - 脚本启动后会全局生效,建议提前把光标定位到需要输入密码的输入框再运行
- 暴力破解属于违规操作,请勿用于未授权的系统,所有后果自行承担
内容的提问来源于stack exchange,提问作者Soulsicle
相关产品推荐
相关产品推荐

