1
我試圖將一些NodeJS代碼移植到Python 3,但在獲取SHA1散列時行爲不一致。NodeJS和Python散列之間的區別
這段代碼在每種語言顯示問題:
的NodeJS
var crypto = require('crypto');
crypto.createHash('sha1');
var h = crypto.createHash('sha1');
h.update(new Buffer('pXHepU2vIdYJuIAN', 'base64').toString('binary'));
console.log(h.digest('hex')); // ea70f5b1ec762290cefd37bc0f9a7421dcc93466
的Python 3
import hashlib
import base64
h = hashlib.sha1()
h.update(base64.b64decode(b'pXHepU2vIdYJuIAN'))
print(h.hexdigest()) # 74161d2d37d9fff312dd396d5f779133c4bfd88d
我想我通過Python的輸入錯誤格式,就像我從它匹配的NodeJS代碼中刪除.toString('binary')
一樣。
任何人都可以向我解釋Python代碼應該是什麼,以及他們爲什麼行爲不同?
比較散列之前的數據,尋找任何空格或換行符。 –