RIPEMD-160 is a 160-bit cryptographic hash that produces a 40-character hex digest from any input. It is most widely known from Bitcoin, where a wallet address is derived using HASH160 — RIPEMD-160 applied to a SHA-256 hash of the public key.
How it works
RIPEMD-160 is a one-way hash function: it takes input of any length and produces a fixed 160-bit (20-byte, 40 hex character) output. Internally it processes the message in 512-bit blocks through two parallel lines of compression rounds, then combines them, which is what gives it the “RIPE” double-pipeline design. The result is deterministic (same input → same hash) and avalanching (a one-character change produces a completely different digest), but not reversible. This tool runs the algorithm in pure JavaScript in your browser, so the text you hash never leaves your device.
Example
Hashing the text abc gives:
8eb208f7e05d987a9b044a8e98c6b087f15a0bfc
Hashing an empty string gives the fixed digest:
9c1185a5c5e9fc54612808977ee8f548b2258d31
| Property | Value |
|---|---|
| Output size | 160 bits / 40 hex chars |
| Reversible | No (one-way) |
| Main use | Bitcoin HASH160 address derivation |
The hash is computed entirely in your browser; nothing is ever uploaded.
RIPEMD-160’s role in Bitcoin address derivation
RIPEMD-160’s most significant real-world use is in generating Bitcoin wallet addresses. The process is:
- Start with an ECDSA public key (a 33- or 65-byte elliptic curve point on secp256k1)
- Apply SHA-256 to the public key → 32-byte hash
- Apply RIPEMD-160 to that SHA-256 hash → 20-byte hash (40 hex characters)
- This 20-byte value is called the public key hash or
HASH160 - Add a version byte, compute a checksum, and encode in Base58Check → the familiar Bitcoin address starting with
1
Using two different hash functions (SHA-256 then RIPEMD-160) provides defense in depth: an attacker would need to break both algorithms simultaneously to reverse-derive a public key from an address. This double-hashing also compresses the public key from 33+ bytes down to 20 bytes, keeping addresses short enough for practical use.
When RIPEMD-160 is appropriate today
RIPEMD-160 has no known practical collision attacks as of 2024. However, the general cryptographic guidance is:
- For Bitcoin address derivation: RIPEMD-160 remains appropriate and required by the protocol
- For new security applications (general purpose hashing, password storage, MACs): prefer SHA-256, SHA-3, or BLAKE2/BLAKE3, which have longer outputs and broader ecosystem support
- For checksums and fingerprints where collision resistance is important: SHA-256 gives a wider security margin (256-bit vs 160-bit output)
The 160-bit output means the theoretical collision resistance is around 2^80 operations — strong by today’s standards, but smaller than the 2^128 collision resistance of SHA-256.
Properties of the algorithm
RIPEMD-160 was designed by a European academic consortium (RACE Integrity Primitives Evaluation) in 1996, specifically as an improvement over the original MD4 and MD5 designs. Its internal structure uses two parallel lines of processing — a “left” and a “right” pipeline — that process the same message blocks but with different constants and orderings of operations. The two pipelines are then combined in the final round. This parallel design is what distinguishes RIPEMD from the sequential SHA family.
| Property | RIPEMD-160 | SHA-256 | BLAKE2b |
|---|---|---|---|
| Output size | 160 bits / 40 hex | 256 bits / 64 hex | 512 bits / 128 hex |
| Block size | 512 bits | 512 bits | 1024 bits |
| Primary use | Bitcoin HASH160 | General purpose | High-speed hashing |
| Known collisions | None (practical) | None | None |