public string GetPubKeyHash(ByteString pubKey) { Org.BouncyCastle.Crypto.Digests.RipeMD160Digest ripe = new Org.BouncyCastle.Crypto.Digests.RipeMD160Digest(); using (SHA256 sha256 = SHA256.Create()) { byte[] shaResult = sha256.ComputeHash(pubKey.ToByteArray()); ripe.BlockUpdate(shaResult, 0, shaResult.Length); byte[] hash = new byte[20]; ripe.DoFinal(hash, 0); return Base58CheckEncoding.Encode(new byte[] { versionByte }.Concat(hash).ToArray()); } }
public string GetPubKeyHash(ByteString pubKey) { Org.BouncyCastle.Crypto.Digests.RipeMD160Digest ripe = new Org.BouncyCastle.Crypto.Digests.RipeMD160Digest(); using (SHA256 sha256 = SHA256.Create()) { byte[] shaResult = sha256.ComputeHash(pubKey.ToByteArray()); ripe.BlockUpdate(shaResult, 0, shaResult.Length); byte[] hash = new byte[20]; ripe.DoFinal(hash, 0); return(Base58CheckEncoding.Encode(new byte[] { versionByte }.Concat(hash).ToArray())); } }
public static Hash RipeMD160(Hash data) { #if NETCOREAPP var digest = new Org.BouncyCastle.Crypto.Digests.RipeMD160Digest(); digest.BlockUpdate(data, 0, data.Length); Hash h = new byte[digest.GetDigestSize()]; digest.DoFinal(h, 0); return(h); #else using (RIPEMD160Managed rp = new RIPEMD160Managed()) { return(rp.ComputeHash(data)); } #endif }