Генератор хешей
Хеши MD5, SHA-1, SHA-256 и SHA-512 любого текста, вычисляемые в реальном времени в вашем браузере с помощью Web Crypto API. Всё, что вы вводите, никуда не отправляется.
Какой алгоритм выбрать?
Зависит от того, для чего вам нужен хеш.
SHA-256 — безопасный вариант по умолчанию для контрольных сумм и проверки целостности. MD5 и SHA-1 криптографически скомпрометированы (для них практически возможно построить коллизии): они подходят, чтобы проверить, что файл не повредился при передаче, но не годятся ни для чего, связанного с безопасностью, например для хранения паролей.
Не подходит для паролей
Ни один из этих алгоритмов нельзя использовать для хранения паролей — они намеренно быстрые, а это как раз то, что не нужно для такой задачи. Для хранения паролей нужен медленный, специально созданный для этого алгоритм, например bcrypt, scrypt или Argon2.
Как это работает
SHA-1, SHA-256 и SHA-512 вычисляются встроенным в браузер API crypto.subtle.digest: ваш текст преобразуется в байты UTF-8 через TextEncoder, хешируется нативно, а результат форматируется как шестнадцатеричная строка в нижнем регистре. MD5 — исключение: Web Crypto намеренно отказывается его реализовывать (поскольку он криптографически скомпрометирован), поэтому этот инструмент включает небольшую JavaScript-реализацию RFC 1321 специально для MD5. Все четыре хеша пересчитываются при каждом нажатии клавиши, с защитой, которая отбрасывает устаревшие результаты, если вы печатаете быстрее, чем завершаются вычисления.
Практическая ловушка при сверке с терминалом: этот инструмент хеширует ровно те байты, которые вы ввели, без завершающего перевода строки. echo "hello" | sha256sum никогда не совпадёт, потому что echo добавляет перевод строки, и вы фактически хешируете "hello\n". Вместо этого используйте printf '%s' "hello" | sha256sum — и хеши совпадут точно. Та же самая ловушка объясняет большинство случаев «почему мой хеш не совпадает» между разными языками и инструментами.
Поскольку crypto.subtle работает внутри браузера, для вычисления хеша ничего никуда отправлять не нужно. Вы можете убедиться в этом сами: откройте вкладку «Сеть» в инструментах разработчика и введите пароль или API-ключ в поле. Ни один запрос не появится — текст остаётся во вкладке.