2017-11-05 23 views
-3

にハッシュをハッシュ私が必要私は以下の書かれているプログラムとの少し助けをPYTHONに新しいです。私は、現在動作するハッシュに変換するテキスト文字列から始めたいと思います。whileループ

しかし、私が抱えている問題は、ハッシュをハッシュしてから最終的なハッシュまで自動的にインクリメントすることです。最終的なハッシュはb2 = 0c9ae7b6896fc93039ab966aba9b65a7です。最後のハッシュで停止するまでwhileループに入ります:0c9ae7b6896fc93039ab966aba9b65a7。私はこれのために何ができるかに

任意の提案をいただければ幸いです。以下は私のコードです。

#!/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

あなたのコードが実行されない、インデントがオフになっています。 – bastelflp

+0

こんにちはbastelflp - 私は実行されなかったコードを含む申し訳ありません。上記のコードはPython 3で動作しますが、入力された文字列をmd5に出力します。私はそれが目的の値 "b2"に達するまで、whileループを実行しようとしています – Colin

+1

ハッシュと文字列を比較しています。そしてwhileループでは何も変えていないので、決して終わりはありません。 – bastelflp

答えて

2

これは、whileループのために動作しますが、何のルールは(質問に追加されたコメントによる)ハッシュB2に到達する方法がないので、収束していない:あなたが持っている

#!/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") 

whileループで比較する値を実際に適応させます。しばらくの詳細を読むここでループ:https://www.tutorialspoint.com/python/python_while_loop.htm

+1

うわー、おかげBastelflpは、ハッシュをハッシュすることは本当に私を台無ししかし、あなたのコードを見ていた、それは今はるかに理にかなっています。私はあなたの助けてくれてありがとう:) – Colin

+0

それが助けてくれてよかった。これがあなたの質問に答えるならば、あなたはそれをアップヴォーグするか、または「解決されたものとしてマークする」ことができます。 – bastelflp