ripemd160は160ビット(=20バイト)の値を返すハッシュ関数です。
pythonでは以下で計算できます。
#!/usr/bin/env python import hashlib h = hashlib.new('ripemd160') h.update(b"abc") r1 = h.hexdigest() print(r1) print("len "+str(len(r1)))
8eb208f7e05d987a9b044a8e98c6b087f15a0bfc len 40
bitcoinではsha256とripemd160の2つのハッシュ関数が使われます。 sha256は有名なので分かりますが、なぜripemd160というマイナーなハッシュ関数が使われているのでしょうか?
明確な理由は不明ですが、256より少し小さいが、十分な強度で、かつsha256と組み合わせることで攻撃に対して少しでも強度を上げるためのようです。
https://en.wikipedia.org/wiki/RIPEMD
自作したい場合はこの辺りを参考にすればいいようです。
https://homes.esat.kuleuven.be/~bosselae/ripemd/rmd160.txt
またopensslコマンドにも実装されているのでそれで取ることも可能です。
$ openssl list-message-digest-commands md4 md5 mdc2 rmd160 sha sha1 $ echo -n "abc" |openssl rmd160 (stdin)= 8eb208f7e05d987a9b044a8e98c6b087f15a0bfc