2011-02-12 69 views
0

。在這個代碼生成SHA1哈希散列而從其他工具不同,從這個文件生成SHA1哈希:生成文件哈希在Python

import os 
import hashlib 

fileList = os.listdir("D:\\a\\") 
for i in fileList: 
d=(hashlib.sha1(file("D:\\a\\"+i, 'r').read()).hexdigest()) 
# os.rename(i,d) 
print(d) 

在MD5,所以我有這個問題! 爲什麼?


編輯:「RB」解決我的問題

+0

不知道SHA1總是產生相同的散列或沒有,但你可以用「RB」 – YOU 2011-02-12 12:53:43

+2

也許是因爲你使用sha1hash在Python和相對於一個MD5哈希試試?如果不是這樣,考慮重寫這個問題,這很難理解它。 – Halka 2011-02-12 12:54:52

回答

7

嘗試使用「RB」,並嘗試使用MD5方法 - 目前你正在使用SHA1 - 這是一個不同的算法,我從假定你解釋其他工具正在使用md5。

1
import os 
import hashlib 

fileList = os.walk("c:\\temp") 
for tuple in fileList: 
    for item in tuple[2]: 
     d = hashlib.md5(file(tuple[0] + "\\" + item, 'r').read()).hexdigest() 
     print [item, d]