2017-11-05 1 views
-3

Ich bin neu bei Python und brauche ein wenig Hilfe mit dem Programm, das ich unten geschrieben habe. Ich möchte mit einer Textzeichenfolge beginnen, die in einen Hash konvertiert, der zur Zeit funktioniert.Hashing in einer While-Schleife

Aber das Problem, das ich habe, Hashing Hash und dann inkrementieren sie automatisch bis zum letzten Hash, der b2 = 0c9ae7b6896fc93039ab966aba9b65a7 in einer while-Schleife ist, bis es bei diesem letzten Hash stoppt: 0c9ae7b6896fc93039ab966aba9b65a7.

Irgendwelche Vorschläge, was ich dafür tun könnte, würden geschätzt werden. Hier ist mein Code unten.

#!/usr/bin/python 

import hashlib 

mystring = input('Hash it: ')                    

b = hashlib.md5(mystring.encode())    
b2 = "0c9ae7b6896fc93039ab966aba9b65a7" 
print(b.hexdigest()) 

while (b!= b2): 
    print ((b.hexdigest())) 
else: 
    print ("done") 
+0

Ihr Code läuft nicht, die Einrückung ist aus. – bastelflp

+0

Hallo bastelflp - Tut mir leid, ich habe den Code, der nicht ausgeführt wurde. Der obige Code läuft in Python 3, druckt aber nur die eingegebene Zeichenkette in md5. Ich versuche, es in einer while-Schleife zu laufen, bis es den beabsichtigten Wert "b2" erreicht – Colin

+1

Sie vergleichen einen Hash mit einer Zeichenfolge. Und Sie ändern nichts in der while-Schleife, so dass dies nie zu einem Ende kommt. – bastelflp

Antwort

2

Dies ist für die while-Schleife funktioniert, aber konvergierende nicht, da es keine Regel, wie der Hash-b2 erreichen (nach den Kommentaren zu der Frage hinzugefügt):

#!/usr/bin/python 

import hashlib 

mystring = input('Hash it: ') 

b1 = hashlib.md5(mystring.encode()).hexdigest() 
b2 = "0c9ae7b6896fc93039ab966aba9b65a7" 
print(b1) 

while b1 != b2: 
    b1 = hashlib.md5(b1.encode()).hexdigest() # calculate next hash 
    print(b1) 

print("done") 

Sie haben um den Wert, den Sie in der while-Schleife vergleichen, anzupassen. Lesen Sie mehr auf while-Schleifen hier: https://www.tutorialspoint.com/python/python_while_loop.htm

+1

Wow, danke Bastelflp, Hashing hat mich wirklich verarscht, aber wenn du deinen Code betrachtest, macht es jetzt viel mehr Sinn. Ich danke Ihnen für Ihre Hilfe :) – Colin

+0

Großartig, wenn es hilft. Wenn dies Ihre Frage beantwortet, können Sie sie aktualisieren oder "als gelöst markieren". – bastelflp