我試圖「發現」hash_res
生成時變量的值是什麼。有沒有更好的方法在python中找到未知的循環?
這是給我的唯一信息是使用以下行:
random.seed(UNKNOWN+hash(CONST_VAR))
hash_res = random.randint(1<<32, 1<<40)
加的CONST_VAR
值是給定的是113092
。 RESULT_VAR
的值也是給定的,它是75284812356
。
到目前爲止,這是我想出的,但我不確定這是正確的方式還是存在更快,更好的方式。
import random
from hashlib import md5
UNKNOWN = 0
CONST_VAR = 113092
RESULT_VAR = 75284812356
hash_res = 0
while hash_res != RESULT_VAR:
UNKNOWN = UNKNOWN+1
random.seed(UNKNOWN+hash(CONST_VAR))
hash_res = random.randint(1<<32, 1<<40)
print UNKNOWN
基本上我循環給定的散列線那麼對於每次迭代,我會遞增UNKNOWN
的值,直到hash_res
值相匹配的RESULT_VAR
。然後打印出UNKNOWN
的值時,循環終止(又名hash_res
匹配了RESULT_VAR
)
這是一種強制方法,我的問題是,有沒有更好的辦法?
注意 我是C#開發,努力學習新的東西:)
試圖破解賭場? :D – thefourtheye
不是!我真希望那是真的@thefourtheye!這是一個使用python的朋友給我的練習。我只是想學習。 –
也許你也可以使用多線程(我只是編輯了我的答案) – oliverpool