Skip to main content
 首页 » 编程设计

python之无法让 crypt 正常工作

2025年05月04日19java哥

我只是想看看我是否可以使用“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()