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 的文本也能算完,不会让页面失去响应
- 摘要只在本机内存里算出来,内容不会离开浏览器
使用方法
- 把文本粘贴进输入框
- 需要比特币地址那一步就勾上 HASH160
- 选择输出编码与大小写
- 按 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 完全不同,地址也就不同,这正是「同一个私钥能有两种地址」的原因。
相关工具
哈希计算
编码算出文本的 MD5、SHA-1、SHA-256 或 SHA-512 摘要,也可算老系统用的 MD4 与 MD2,中文按 UTF-8 字节计算。全部在本地完成。
SHA-3 / Keccak
编码计算 SHA-3、SHAKE 与以太坊用的原版 Keccak 摘要,十个变体一次覆盖,SHAKE 的输出长度可以自己定。
Base58 / 62 / 100
编码在 Base58、Base62 与 Base100 之间编解码文本,含比特币与 Flickr 两套 Base58 字母表。中文按 UTF-8 字节处理,全部在本地完成。
Base64 编解码
编码把文本转成 Base64,或把 Base64 还原成文本,中文与 emoji 都按 UTF-8 正确处理。全部在浏览器本地完成,内容不上传。
URL 编解码
编码把中文、空格与符号转义成 %XX,或把 %XX 还原成文本;整条 URL 与单独的参数值要选对方式,选错不会报错,但链接会打不开。全部在浏览器本地完成。
HTML 实体编解码
编码把 < > & 与引号转成 HTML 实体,也能把实体还原成字符,而且只解一遍:&lt; 得到的是 < 而不是尖括号。全部在浏览器本地完成。