b2KIT

RIPEMD-160 Hash Generator

Generate RIPEMD-160 hash values from text or file input, commonly used in Bitcoin address derivation.

Tested tool guide Tested browser tools Checked August 16, 2026

What RIPEMD-160 Hash Generator does, with a checked example

RIPEMD-160 squeezes any input - a phrase, a file, a public key - down to a fixed 40-character hexadecimal digest. Designed in 1996 as a strengthened successor to the original RIPEMD after weaknesses were found in it, the hash is best known today as the second stage of Bitcoin address derivation, where it runs on the SHA-256 hash of a public key. Everything is computed locally in your browser; nothing is uploaded. The thing users most often misread: the result is a hash, not an encryption and not an address - it cannot be reversed, and turning it into a Bitcoin address takes further encoding steps.

Worked example

A concrete input and expected output from the current implementation.

Input

abc

Expected output

8eb208f7e05d987a9b044a8e98c6b087f15a0bfc

"abc" is a standard test input in hash vector suites, and its RIPEMD-160 digest is the well-established value shown here: any correct implementation of this algorithm must return these exact 40 characters. Forty hex characters are 20 bytes, which is exactly 160 bits - the length the algorithm's name refers to.

How the result is produced

1

Fixed 160-bit digest

RIPEMD-160 is a Merkle-Damgard-style hash that processes the input in 512-bit blocks through two parallel lines of five 32-bit words, then combines the lines at the end. Every input, however long, yields the same 20-byte result, shown as 40 lowercase hex characters. The function is deterministic - identical bytes in, identical digest out - and a single changed bit propagates through the rounds and changes roughly half the output bits.

2

Byte-exact input

What gets hashed is the raw byte sequence. Text you type is encoded as bytes (UTF-8 by default), and a file is hashed byte-for-byte as stored, so a trailing newline, a CRLF line ending, or a file re-saved in a different encoding changes the digest even when the text looks identical. Leading and trailing spaces count too. To reproduce a published checksum, the bytes must match exactly.

Good uses

  • Verify the Hash160 of a Bitcoin public key: hash the SHA-256 output of a public key to obtain the 40-hex intermediate that, after Base58Check encoding, becomes a Bitcoin address.
  • Check a downloaded file against a published RIPEMD-160 checksum, which some legacy software and mirror sites still provide alongside SHA sums.
  • Validate your own implementation: feed the known test vectors, such as the "abc" example above, and compare against the expected 40-character output.

Limits and checks

  • Not reversible, not encryption, not a password tool. The digest cannot be turned back into the input, and RIPEMD-160 is a fast, unkeyed hash - unsuitable for storing passwords, which need a slow, salted function such as bcrypt or Argon2.
  • The output is not a Bitcoin address. Addresses are Base58Check-encoded with a version byte and a 4-byte checksum, and the derivation hashes SHA-256 first. Hashing a public key directly gives only the intermediate Hash160, and compressed versus uncompressed key bytes give different results.
  • Modest collision margin. A 160-bit digest has a generic collision-finding cost of about 2^80 operations, the birthday bound - far below the 2^128 margin of a 256-bit hash such as SHA-256 - so RIPEMD-160 is not the recommended choice for new systems; the SHA-2 or SHA-3 families are preferred.

Common questions

Can this tool reverse a hash or recover a Bitcoin private key from an address?

No. Hashing is one-way: neither the original text nor a public key can be recovered from the 160-bit digest, and addresses are even more lossy because Base58Check drops data. Anyone offering to "unhash" a RIPEMD-160 value into a private key is running a scam - this tool only hashes forward.

Why doesn't my public key's digest look like the address in my wallet?

Because an address is several steps beyond this tool's output: SHA-256 the public key, RIPEMD-160 that result to get the Hash160, prepend a version byte, append a checksum, then Base58Check-encode. Also confirm you used the same key format (compressed or uncompressed) the wallet did; the two hash differently.

References and verification

The example and behavioral notes were checked against the browser implementation. Standards and primary references below define the relevant format, formula, or platform behavior.

Related Tools