piapia123
zh

RIPEMD-160 哈希计算

编码

所有处理都在浏览器本地完成,数据不上传服务器

输入
把文件拖到这里可直接载入
输出

算出文本的 RIPEMD-160 摘要。这个算法 1996 年由 Hans Dobbertin 等人提交给欧盟的 RIPE 项目,本意是做一个不必依赖美国标准的哈希 —— 所以它刻意与 MD4 / MD5 同源却不同构,两条并行的轮函数互相交叉,最终输出 160 位。它今天仍然被大量使用,原因只有一个:比特币。生成 P2PKH 地址的那一步(先 SHA-256、再 RIPEMD-160,合称 HASH160)用的就是它,凡是需要复现地址、校验钱包导入格式(WIF)、计算脚本哈希的场合都绕不开。勾上「先过一遍 SHA-256」就能直接算出 HASH160。

功能

  • RIPEMD-160 摘要,输出十六进制或 Base64
  • 一键切换 HASH160 —— 先 SHA-256 再 RIPEMD-160,比特币地址的核心一步
  • 中文与 emoji 按 UTF-8 字节计算,与 openssl 逐位一致
  • 自带实现,不依赖已废弃的 OpenSSL legacy provider
  • 数 MB 的文本也能算完,不会让页面失去响应
  • 摘要只在本机内存里算出来,内容不会离开浏览器

使用方法

  1. 把文本粘贴进输入框
  2. 需要比特币地址那一步就勾上 HASH160
  3. 选择输出编码与大小写
  4. 按 Ctrl/⌘ + Enter 或点「运行」,然后复制结果

常见问题

HASH160 是什么?和 RIPEMD-160 什么关系?
HASH160 不是另一个哈希算法,而是一个两步的组合:先对数据做一次 SHA-256,把得到的 32 字节结果再做一次 RIPEMD-160,得到 20 字节。比特币用它把公钥压成 20 字节的公钥哈希,再由 Base58 编成地址 —— 所以地址总是比公钥短,也就更省手续费。勾上这个选项,本工具做的就是这两步。
RIPEMD-160 还安全吗?
比 MD5 和 SHA-1 好得多,但已不是首选。它的 160 位长度是主要短板 —— 生日攻击的复杂度约 2^80,以今天的算力不再是可望不可及的数字。实际找到的碰撞攻击(2013 年)需要降低轮数才成立,对完整版没有实际威胁,所以比特币至今照常使用它。做新的设计请直接用 SHA-256 或 SHA-3;用这个工具的场景多半是复现已有的值。
为什么浏览器不直接提供这个算法?
Web Crypto 只收录 NIST 标准里的算法,RIPEMD-160 不在其中(它来自欧盟的 RIPE 项目)。Node 的 OpenSSL 3 把它挪进了 legacy provider,默认也不加载。所以本工具自带了一份完整实现。一个直接的后果是:即便在 http:// 这类没有 Web Crypto 的环境里,RIPEMD-160 这一路照样能算 —— 只有勾上 HASH160 之后才需要安全上下文。
算出来的摘要和钱包里的对不上?
检查两件事。一是输入到底是公钥还是地址:HASH160 的输入是公钥的字节(压缩公钥 33 字节,未压缩 65 字节),不是地址字符串,也不是私钥。二是公钥的压缩与否 —— 同一个公钥的压缩与未压缩形式算出来的 HASH160 完全不同,地址也就不同,这正是「同一个私钥能有两种地址」的原因。

相关工具