我正在努力拼读简短的单词。密码长度应为1-3(字母数字)或1-6(数字)。 我有密码.txt以及字典.txt文件夹。如果字典不能帮我们找到密码,那我只好用蛮力找到了
我的问题是,我只能解决,如果密码长度是6(数字)或3(字母数字),你可以看到。你知道吗
import crypt
import secrets
import string
def testPass(cryptPass):
salt = cryptPass[0:2]
dictFile = open('dictionary.txt', 'r')
for word in dictFile.readlines():
word = word.strip('\n')
cryptWord = crypt.crypt(word, salt)
if(cryptWord == cryptPass):
print('Found password:', word, '\n')
return
alphabet = string.ascii_letters + string.digits
alphabet2 = string.digits
while(True):
numericPassword = ''.join(secrets.choice(alphabet2) for i in range(6))
cryptedWord = crypt.crypt(numericPassword, salt)
alphaNumericPassword = ''.join(secrets.choice(alphabet) for i in range(3))
cryptedWord2 = crypt.crypt(alphaNumericPassword, salt)
if(cryptPass == cryptedWord):
print('Password found:', numericPassword, '\n')
break
elif(cryptPass == cryptedWord2):
print('Password found:', alphaNumericPassword, '\n')
break
def main():
print()
passFile = open('passwords.txt')
for line in passFile.readlines():
if ":" in line:
user = line.split(':')[0]
cryptPass = line.split(':')[1].strip('\n')
print("Cracking password for:", user)
testPass(cryptPass)
main()
我试着添加更多的线条,比如
alphaNumericPassword = ''.join(secrets.choice(alphabet) for i in range(1))
alphaNumericPassword = ''.join(secrets.choice(alphabet) for i in range(2))
或者
numericPassword = ''.join(secrets.choice(alphabet2) for i in range(4))
numericPassword = ''.join(secrets.choice(alphabet2) for i in range(5))
但是当我添加这些行时,它不会产生任何结果(我想是因为有太多的可能性)。我也尝试过嵌套循环,但没有任何改变。我怎么知道?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐