さて、私はPythonで非常に単純なパスワードクラッカーを書いています。これは、ブルートフォースで英数字のパスワードを強制します。現在、このコードは 1 文字のパスワードと、内部に md5 ハッシュ化されたパスワードを含むパスワード ファイルのみをサポートしています。最終的には、独自の文字制限 (クラッカーが失敗するまで試行する文字数) を指定するオプションが含まれます。今のところ、このコードを終了させたいときに、このコードを終了することはできません。try と except スニピットを含めましたが、機能していません。私は何を間違えましたか?
コード: http://pastebin.com/MkJGmmDU
import linecache, hashlib
alphaNumeric = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z",1,2,3,4,5,6,7,8,9,0]
class main:
def checker():
try:
while 1:
if hashlib.md5(alphaNumeric[num1]) == passwordHash:
print "Success! Your password is: " + str(alphaNumeric[num1])
break
except KeyboardInterrupt:
print "Keyboard Interrupt."
global num1, passwordHash, fileToCrack, numOfChars
print "What file do you want to crack?"
fileToCrack = raw_input("> ")
print "How many characters do you want to try?"
numOfChars = raw_input("> ")
print "Scanning file..."
passwordHash = linecache.getline(fileToCrack, 1)[0:32]
num1 = 0
checker()
main