2017-07-19 55 views
0

考慮片段:兩個打印SHA-256哈希的方式在Python 1個字節不同

from Cryptodome.Hash import SHA256 
text = b'Jeanny' 
print('Hash of', text) 

hx = SHA256.new(text).hexdigest() 
print(hx) 

h = SHA256.new(text).digest() 
[print('{0:x}'.format(h[i]), end = '') for i in range(0,len(h))] 

它打印:

Hash of b'Jeanny' 
f51c7dbd56cc25c565f7c7ef951b06121e87e34f2e3bb466e873a2518715fe50 
f51c7dbd56cc25c565f7c7ef951b6121e87e34f2e3bb466e873a2518715fe50 

爲什麼是它的十六進制數字的第二印刷串在位置29錯過0

+0

正如@Ignacio所建議的那樣,您需要填零號碼,將公式改爲 '[print('{0:02x}'。format(h [i]),end ='')for我在範圍內(0,len(h))]' –

回答

1

因爲它試圖打印「06」,但是你沒有告訴它將零填充數字。