我只是想看看我是否可以使用“crypt”模块,但我似乎遇到了一个我一生都无法解决的问题。运行后的输出是这样的:
Password Not Found. secret HXXxJi0n6Huro HXXxJi0n6Huro
这意味着 cryptWord 和 cryptPass 是相同的,那么为什么程序不执行 (if cryptWord == cryptPass:) 和 print 'Found Password:
我根本不明白。
dictionary.txt 文件中多次包含单词 secret,而且都在不同的行中。 evil.txt 文件有这一行:
test_user:HXXxJi0n6Huro
据我所知,一切正常吗?但是有些东西阻止了它正常工作,我就是想不通。任何帮助将不胜感激。
import crypt
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
print "[-] Password Not Found. " +word, cryptWord, cryptPass+ "\n"
return
def main():
passFile= open('evil.txt')
for line in passFile.readlines():
if ":" in line:
user = line.split(':')[0]
cryptPass = line.split(':')[1]
print "[*] Cracking Password For: "+user
testPass(cryptPass)
if __name__ == '__main__':
main()
请您参考如下方法:
您的 crypPass 值仍然附加了换行符。先剥离它:
user, cryptPass = line.split(':')
cryptPass = cryptPass.strip()
