2017-02-14 8 views
0

어떻게 암호 알고리즘 RIPEMD와 SHA256이 작동하는지 이해하려고합니다. PKHash를 계산하기위한 비트 코인 방법은 RIPEMD160 (SHA256 (PublicKey))입니다.PKHash RipeMD160 in python

먼저 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으로 어떻게 변환합니까 ??

현재, 내가 대신 pkHashStep1의 내 RIPEMD 방법에 대한 입력으로 공개 키를 가지고 있고, 별도로 참고

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

을 할 필요가 : 나는 hashlib의 RIPEMD 방법이 알고있다. 제안 나는 대답이 아니다. https://stackoverflow.com/a/2124289/4219479

+0

그냥 16 진수 문자열로 바이트 문자열로 변환 예 [이 질문] (http://stackoverflow.com/questions/6624453/whats-the-correct-way를 참조하는 방법을 요청하는 경우 -to-convert-bytes-to-a-hex-string-in-python-3). 그것은 Python 3을 요구 받았지만 2를 위해 또한 작동합니다. – glibdud

답변

0

glibdud의 코멘트는 나에게 답을 주었다.

hashlib.sha256(public_key.decode('hex')).digest().encode('hex')= 
hashlib.sha256(public_key.decode('hex')).hexdigest()