2017-07-19 54 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”,但是你没有告诉它将零填充数字。