RIPEMD(RACE Integrity Primitives Evaluation Message Digest)是一类欧洲背景的哈希函数。下面重点说明关键规则汇总。
RIPEMD开发速查
- 常用的是 RIPEMD-160,输出 160 位、四十个十六进制字符
- 空字符串的 RIPEMD-160 是 9c1185a5c5e9fc54612808977ee8f548b2258d31
- “abc”的 RIPEMD-160 是 8eb208f7e05d987a9b044a8e98c6b087f15a0bfc(这是常用测试向量)
- 还有 RIPEMD-128/256/320 等变体,使用远少于 160 位版本
- 它与 MD5、SHA-1 输出长度可以相同,但算法不同、结果不同
- 匹配 RIPEMD-160 十六进制:^[a-fA-F0-9]{40}$
示例
输入:<b>粗体</b>
计算结果:98b38ea5443f1787e0c95f6d17db6420a1eea26e
说明:对 UTF-8 字节计算 ripemd160。
工作原理
RIPEMD-160 采用两条并行的 80 步流水线处理 512 位分组,最后把两路状态混合成 160 位摘要。比特币中的 HASH160 定义为 RIPEMD160(SHA256(data)),不是单独再算一次 RIPEMD-160。
Go 示例
下面是 Go 中处理RIPEMD的常用写法:
import "golang.org/x/crypto/ripemd160"运行前确认输入的字符集(推荐 UTF-8),结果可以用本站工具交叉核对。
本站的哈希全家桶工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。
常见问题
【和 SHA-1 能互相替代吗?】不能,结果不同,协议里写哪种就用哪种。
【比特币地址为什么用它?】HASH160 = RIPEMD-160(SHA-256(pubkey)),用来缩短公钥哈希。
【输出多长?】160 位,40 个十六进制字符。
文中示例可以在本站对应工具中验证;处理密钥、证书等敏感数据时,请注意保护隐私。
标签: 数码开发