我試圖建立一個MD5'餅乾'並使用兩個不同的腳本來做到這一點,第一個需要從單詞表中的單詞列表(巨大的單詞list.txt),然後將它們散列並寫入另一個文件(WordsHash.txt)。然後第二個採用用戶定義的單詞,哈希它並將其與WordHash.txt中的哈希值進行比較,但是我爲同一個字符串獲取了不同的哈希值。2個腳本返回2個不同的哈希值我認爲是相同的字符串
第一個腳本:
import hashlib
hashes = open("WordsHash.txt", 'w')
m = hashlib.md5()
with open("huge word list.txt") as words:
words = words.readlines()
print "processing..."
for line in words:
line = line.replace("\n", "")
m.update(line)
word_hash = m.hexdigest()
line = "%s %s\n" % (line, word_hash)
hashes.write(line)
print "done."
hashes.close()
和第二個腳本:
import hashlib
f = open('WordsHash.txt')
p = '\'due'
password = hashlib.md5()
password.update(p)
password = password.hexdigest()
print "%r %r" %(password, p)
for line in f:
lines = line.split(" ")
lines[1] = lines[1].replace("\n", "")
word_hash = lines[1]
if word_hash == password:
print "found it, %s" % line
exit(0)
代碼已經以不同的方式做到了這一點。 – 2012-02-27 22:02:14
strip()不會取代\ n – 01100110 2012-02-27 22:05:00
當然,但是告訴提問者無條件剝離並不一定是正確的。 – 2012-02-27 22:07:21