
RIPEMD与摘要长度
RIPEMD是一类密码学哈希算法,RIPEMD-160与RIPEMD-128是其中不同的算法。名称中的数字表示输出摘要的位数:160位对应20字节,128位对应16字节。摘要是对输入数据计算得到的固定长度结果,不能把它理解为能够解密还原的密文。
位、字节和显示字符属于不同层次。例如,20字节摘要用十六进制表示时通常占40个字符;显示形式变长,并不意味着摘要包含了更多数据。

HASH160与OP_HASH160
Bitcoin交易参考文档描述的HASH160,是先对输入执行SHA-256,再对所得摘要执行RIPEMD-160。OP_HASH160则是执行这一组合计算的脚本操作码:它取出栈顶数据,并将计算结果放回栈顶。

这里的栈可以理解为按规则存取数据的工作区。算法规定如何计算,操作码规定脚本执行什么动作。因此,RIPEMD-160、HASH160和OP_HASH160分别指向单个算法、组合计算与脚本操作,不能直接混用。
公钥哈希、脚本哈希与地址
在P2PKH中,HASH160处理的是公钥;在P2SH中,处理的是序列化后的赎回脚本。两者采用相同的摘要计算方式,但输入对象不同,对应的支出条件也不同。
上述地址使用Base58Check编码时,还涉及版本信息和校验和。因此,哈希值只是地址构成的一部分。校验和用于发现传输或录入错误,不能证明某人拥有相应私钥;公钥哈希匹配也不能代替签名验证。这些说明适用于所述地址类型,不能推广为所有区块链地址的统一格式。
HMAC与测试向量
RFC 2286提供HMAC-RIPEMD160和HMAC-RIPEMD128的测试用例。HMAC是结合秘密密钥与哈希函数的消息认证构造;测试向量列出密钥、消息和预期结果,用于核对实现是否得到一致输出。该文档属于信息性文档,并非互联网标准。
普通哈希计算不要求秘密密钥,HMAC则依赖密钥参与认证。它也不同于通过公钥验证的数字签名。名称中同样出现RIPEMD,不代表HMAC就是比特币地址计算所用的HASH160。
常见理解偏差
摘要长度是否等于安全强度?不能直接画等号,输出位数只说明结果长度。通过测试向量是否证明系统安全?它只能帮助验证特定输入下的实现结果,不能替代全面安全评估。阅读相关术语时,先确认输入是什么、是否使用密钥、结果用于何处,通常就能厘清概念边界。