暗号アルゴリズム 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