2016-06-28 43 views
-2

好吧,所以我正在测试我在python中制作的蛮力算法。唯一的问题是,当它获取我希望它获得的密码而不是打印出“密码正确:密码”时,它会列出其他可能的选项。甚至不会暂停。下面的代码:蛮力发电机不知道密码猜到

import itertools 
import os 

lettersChar = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' 
numbersChar = '1234567890' 
allChar = 'abcdefghijklmnopqrstuvwxyz_ABCDEFGHIJKLMNOPQRSTUVWXYZ' 


def CrackPassword(characters): 
    realPass = input(' What Password Would You Like To Use : ') 
    amount = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20] 
    for i in amount: 
     gen = itertools.combinations_with_replacement(characters,i) 
     for password in gen: 
      convert = ''.join(password) 
      if(convert == realPass): 
       print('Password Is Correct : ' + convert) 
       os.system('pause') 
       return True 
      else: 
       print('Not Correct : ' + convert) 

如果有人可以帮助我走出这将是大加赞赏:d

+4

显示你在哪里调用'CrackPassword' –

+1

部分这只是正常使用我'CrackPassword(numbersChar)' – Jeff

+1

它只是CrackPassword(allChar) – wesleyd1124

回答

2

你需要itertools.product(chars, repeat=i),因为你想置换,使用替代组合。

您可以在MathIsFun上阅读更多关于排列,组合等的区别。