2017-03-21 10 views
-4

Ich versuche, eine Schleife zu erstellen, die Zeichenfolgen aus einer Liste vergleicht, die ich bereits erstellt habe. Die Liste besteht aus Passwörtern, und die gleichen Passwörter wurden mit md5 hashed. Ich habe eine Funktion, die Hashing durchführt, und eine andere, die die Liste der beiden Kennwörter ausgibt. Die neue Funktion "findmd5" soll jeden md5-verschlüsselten Wert der Passwortliste mit der verschlüsselten Zeichenfolge vergleichen, die übergeben wird. "Pass2check" ist eine vorgegebene Zeichenfolge, die ich in der Schleife verwenden möchte, ihr MD5-Wert sollte den Wert zurückgeben Passwort "Fußball". Der Code in meiner neuen Funktion ist sehr unvollständig, weil ich zu den nächsten Schritten bin verloren zu nehmen ..Vergleichen Strings Loop Python

import hashlib 
passwordlist = ["password","123456","12345678","1234","qwerty","12345", 
"baseball","football","letmein","monkey","abc123","mustang","michael"] 

def makemd5(key_string): 

    new_key_string = key_string.encode('utf-8') 

    return (hashlib.md5 (new_key_string).hexdigest()) 

def createmd5list(passwordlist): 

    for passlist in passwordlist: 
     hashlist = makemd5(passlist) 
     print (passlist,",",hashlist) 

def findmd5(pass2check): 

    for line in open(passwordlist + hashlist): 
     if pass2check in line: 
      print(True) 
     else: 
      print(False) 


def main(): 

    pass2check = "37b4e2d82900d5e94b8da524fbeb33c0" 



main() 
+0

Willkommen bei Stackoverflow gedruckt wird. Bitte lesen und befolgen Sie die Buchungsrichtlinien in der Hilfe. [Minimales, vollständiges, überprüfbares Beispiel] (http://stackoverflow.com/help/mcve) gilt hier. Wir können Ihnen nicht effektiv helfen, bis Sie Ihren MCVE-Code veröffentlicht und das Problem genau beschrieben haben. StackOverflow ist kein Codierungs- oder Lernprogramm. – Prune

+1

Insbesondere produziert Ihr Code keine Ausgabe und keine Fehler. "Ich bin verloren" ist keine Problemspezifikation; Stattdessen wird empfohlen, dass Sie eine andere Ressource als Stack Overflow benötigen. – Prune

+0

Ihr Hauptprogramm ruft * keine * Ihrer Funktionen auf. Woher weißt du, dass die anderen funktionieren? Welche Daten benötigt findmd5 von ihnen? Wir haben wirklich keine Möglichkeit, Ihnen Hilfe auf StackOverflow-Ebene zu geben, ohne die Arbeit zu leisten, die Sie * in Ihr Posting stecken sollten. – Prune

Antwort

0

Sie diese versuchen können():

import hashlib 
passwordlist = ["password","123456","12345678","1234","qwerty","12345", 
"baseball","football","letmein","monkey","abc123","mustang","michael"] 

def listOfHashs(): 
    return [hashlib.md5(item.encode('utf-8')).hexdigest() for item in passwordlist] 

def main(): 
    pass2check = "37b4e2d82900d5e94b8da524fbeb33c0" 
    index = listOfHashs().index(pass2check) 
    print(passwordlist[index] if index >= 0 else "Hash not found !") 

main() 

in dieser Version habe ich versucht zu Ändern Sie Ihren Code:

import hashlib 
passwordlist = ["password","123456","12345678","1234","qwerty","12345", 
"baseball","football","letmein","monkey","abc123","mustang","michael"] 

def makemd5(key_string): 
    new_key_string = key_string.encode('utf-8') 
    return (hashlib.md5 (new_key_string).hexdigest()) 

def createmd5list(passwordlist): 
    hashlist = [] 
    for passlist in passwordlist: 
     hashlist += [makemd5(passlist)] 
    return hashlist 

def findmd5(pass2check): 
    for index, line in enumerate(createmd5list(passwordlist)): 
     if pass2check in line: 
      return index 
    return -1 


def main(): 
    pass2check = "37b4e2d82900d5e94b8da524fbeb33c0" 
    index = findmd5(pass2check) 
    if index >= 0: 
     print passwordlist[index] 
    else: 
     print "Hash not found !" 

main() 
0

Sie müssen die Liste der Hash Passwörter nicht erstellen. Stattdessen erstellen Sie den Digest und Filter innerhalb des Listenverständnisses und die endgültige Liste enthält nur die gültigen Lösungen.

Ihren eigenen Code nacharbeiten, könnte es aussehen

import hashlib 
passwordlist = ["password","123456","12345678","1234","qwerty","12345", 
    "baseball","football","letmein","monkey","abc123","mustang","michael"] 

def findmd5(pass2check): 
    result = [password for password in passwordlist 
       if hashlib.md5(password).hexdigest() == pass2check 
      ] 
    if len(result): 
     print("The answer is") 
     for password in result: 
      print(password) 
    else: 
     print("Password not found") 

def main(): 

    pass2check = "37b4e2d82900d5e94b8da524fbeb33c0" 
    findmd5(pass2check) 


main() 

Diese alle gültigen Lösungen