【发布时间】:2017-03-09 06:03:13
【问题描述】:
我需要为学校制作小程序来暴力破解不同类型的密码;我正在寻找创建一个蛮力 python 代码,它将遍历字母和字母数字密码的所有可能组合,并给我密码和破解所需的时间。
我对纯数字密码做了同样的事情,得到了这个:
import datetime as dt
Password4 = 123456
def crack_password():
start = dt.datetime.now()
for n in range(1000000):
password_guess = '{0:04d}'.format(n)
if password_guess == str(Password4):
end = dt.datetime.now()
print("Password found: {} in {}".format(password_guess, end - start))
break
guesses = crack_password()
然后,我尝试对字母/字母数字密码做一些类似的操作,但无论我尝试什么都没有用:
import random
letters = [str(i) for i in range('a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p')]
s = [''.join([a,b,c,d,e,f,g,h]) for a in letters for b in letters for c in letters for d in letters for e in letters for f in letters for g in letters for h in letters]
random.shuffle(s)
real_password = 'aaaaaaaa'
i = 0
for code in s:
if code == real_password:
print()
print('The password is: ', code)
break
else:
i += 1
print(i, ' failures', end='\r')
程序必须包含失败次数或找到密码所需的时间,这就是为什么我不能简单地制作密码生成器。
【问题讨论】:
-
我建议你看看这个 PHP 脚本,我觉得它写得很好:gist.github.com/popc0rn/5859209
-
感谢@YannChabot,但是我正在寻找在 python 中执行此程序并且真的不知道如何在不同语言之间进行翻译
-
letters = [str(i) for i in range('a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p')]不像你想的那样工作...... -
letters = 'abcdefghijklmnopqstuvwxyz'是你的目标
标签: python passwords brute-force cracking