Генератор хеша RIPEMD-160
Введите текст или вставьте байты в hex и получите 160-битный хеш RIPEMD-160 — 40 шестнадцатеричных цифр. Режим HASH160 сначала берёт SHA-256 от входа: именно так открытый ключ Bitcoin превращается в 20 байтов внутри адреса.
Работает в браузере: всё, что вы вводите, никуда не отправляется.
Как пользоваться
- Введите текст или вставьте байты в hex и выберите «Вход как: Байты в hex» (пробелы, двоеточия и 0x игнорируются).
- Выберите RIPEMD-160 или HASH160, чтобы хешировать SHA-256 от входа.
- Скопируйте хеш из 40 hex-цифр; включите заглавные цифры, если система ждёт их.
Как это работает
RIPEMD-160 дополняет сообщение до кратного 64 байтам (бит 1, нули, затем длина в битах) и обрабатывает каждый 64-байтовый блок двумя параллельными линиями по 80 шагов. Каждая линия смешивает шестнадцать 32-битных слов блока с помощью битовых функций, циклических сдвигов и констант; в конце блока линии объединяются в пять 32-битных слов состояния. Итоговое состояние, записанное в порядке little-endian, и есть 20-байтовый хеш.
Реализация сверена с тестовыми векторами авторов: пустая строка даёт 9c1185a5c5e9fc54612808977ee8f548b2258d31, а «message digest» — 5d0689ef49d2fae572b881b123a85ffa21595f36.
Пример
Текст abc (байты 61 62 63) даёт хеш:
8eb208f7e05d987a9b044a8e98c6b087f15a0bfc
Если ввести 616263 и выбрать «Байты в hex», хеш будет тем же: байты одинаковые.
Советы
- Адрес Bitcoin — это ещё версия, контрольная сумма и кодирование Base58Check или Bech32 поверх HASH160; здесь вычисляется сам 20-байтовый хеш.
- Регистр hex не важен: 8EB2… и 8eb2… — одно и то же значение.
- Помните, что русский текст в UTF-8 занимает по 2 байта на букву, и хеш считается от этих байтов.
Частые вопросы
Что такое RIPEMD-160?
Криптографическая хеш-функция 1996 года, авторы — Ханс Доббертин, Антон Босселарс и Барт Пренел. Она превращает любые данные в 160-битный (20-байтовый) хеш. Больше всего известна по Bitcoin, где ею укорачивают открытые ключи и скрипты, а также по некоторым программам PGP и сертификатов.
Что такое HASH160?
HASH160(x) = RIPEMD-160(SHA-256(x)). Bitcoin применяет его к открытому ключу и получает 20-байтовый хеш ключа для адресов P2PKH и P2WPKH. Для сжатого открытого ключа 0279BE66…F81798 (закрытый ключ 1) получается 751e76e8199196d454941c45d1b3a323f1433bd6. Ключ — это байты, поэтому выберите «Байты в hex».
Почему хеш не совпадает с другим сайтом?
Проверьте, что именно хешируется. Текст хешируется как байты UTF-8, поэтому лишний пробел или перенос строки меняет результат. Hex-строка, введённая как текст, хешируется как символы, а не как байты, — для неё переключите «Вход как» на «Байты в hex».
RIPEMD-160 ещё надёжен?
Практических атак на поиск коллизий или прообраза для полного RIPEMD-160 не известно. Но 160 бит дают лишь около 80 бит стойкости к коллизиям, поэтому в новых системах обычно выбирают SHA-256 или SHA-3.