2013-02-02 70 views
1

我只是看到我是否可以使用'地下室'模块,我似乎遇到了一个问题,我不能为我的生活弄清楚。之后我运行这个输出是这样的:不能让地下室正常工作

Password Not Found. secret HXXxJi0n6Huro HXXxJi0n6Huro 

这意味着cryptWord和cryptPass是相同的,那么为什么不计划做(if cryptWord == cryptPass:),并print 'Found Password:

我只是不根本就得到它。

dictionary.txt文件中多次包含单词秘密,全部在单独的行上。而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() 
+0

请不要*添加'[已解决]'问题标题;这就是'接受答案'的标志。 :-) –

+0

不知道,对不起。 –

+0

不是问题,但为什么您也删除了“接受答案”标记?你可以把它留在! :-)这就是我想说的,标记答案被接受,那就是它的存在。但是你不应该在问题标题中加上[[已解决]]。 –

回答

6

你的crypPass值仍然附有一个换行符。首先将其去掉:

user, cryptPass = line.split(':') 
cryptPass = cryptPass.strip() 
+0

如果我有名誉,我会为您投票。但是,谢谢,它在我添加该行后立即生效。 –

+0

我绝对会!你回答得太快了,但我得等几分钟。 –