0

暗号アルゴリズム RIPEMD と SHA256 がどのように機能するかを理解しようとしています。PKHash を計算するビットコイン方式は RIPEMD160(SHA256(PublicKey)) です。

最初に SHA256(PublicKey) の RIPEMD を実装しようとしています。

pkHashStep1=hashlib.sha256(public_key.decode('hex')).digest()
print 'MyTransaction pkHashStep1 {}'.format(pkHashStep1)

MyTransaction pkHashStep1 ▒▒▒so▒/▒▒e▒▒▒¡▒7▒?9▒▒.▒ӟ!n▒h

これは直接使用できない文字列を出力しますが、hashlib ライブラリはこれを使用できます。pkHashStep1.decode('hex') と bin(pkHashStep1) を試すと、エラーがスローされます。ハッシュを使用可能な hexstring/bin にどのように変換しますか??

現在、RipeMD メソッドへの入力として pkHashStep1 の代わりに publicKey があり、個別に行う必要があります。

input=hashlib.sha256(publicKey.decode('hex')).hexdigest()

参考までに、hashlibにripemdメソッドがあることは知っています。私がそれを使用することを提案することは答えではありません https://stackoverflow.com/a/2124289/4219479

4

1 に答える 1

0

glibdud のコメントで答えがわかりました。

hashlib.sha256(public_key.decode('hex')).digest().encode('hex')=
hashlib.sha256(public_key.decode('hex')).hexdigest()
于 2017-02-15T03:38:13.380 に答える