2017-05-18 15 views
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コードは何であるべきか、彼らの行動はどう違うのでしょうか?

+0

ハッシュする前にデータを比較し、空白または改行文字も探します。 –

答えて

1

このようなPythonコード:

import hashlib 
import base64 

h = hashlib.sha1() 
h.update(base64.b64decode(b'pXHepU2vIdYJuIAN').decode('latin1').encode()) 
print(h.hexdigest()) #result is ea70f5b1ec762290cefd37bc0f9a7421dcc93466 

私はNodejs crypto vs python hashlib

が、それはあなたのお役に立てば幸いですこの質問を参照しています。

関連する問題