Посчитайте криптографический хеш от любой строки. SHA-семейство считается через Web Crypto API браузера, MD5 - через встроенную реализацию. Текст не покидает ваше устройство - никаких запросов на сервер.
MD5 и SHA-1 считаются криптографически небезопасными с 2010-х (найдены коллизии). Используйте их только для контрольных сумм и совместимости со старыми системами. Для паролей, подписей и целостности - SHA-256 или выше.
Криптографическая хеш-функция превращает вход любой длины в строку фиксированной длины. Хорошая хеш-функция обладает тремя свойствами: детерминированность (одинаковый вход → одинаковый выход), стойкость к коллизиям (найти два разных входа с одинаковым хешем вычислительно невозможно) и лавинный эффект (изменение одного бита входа меняет большинство битов выхода).
| Алгоритм | Длина | Назначение |
|---|---|---|
MD5 | 128 бит / 32 hex | Контрольная сумма файлов, legacy. Небезопасен для подписей. |
SHA-1 | 160 бит / 40 hex | Git-коммиты, legacy. С 2017 — публично сломан, не для безопасности. |
SHA-256 | 256 бит / 64 hex | Стандарт де-факто: подписи, Bitcoin, целостность, HMAC. |
SHA-384 | 384 бит / 96 hex | TLS cipher suites, промежуточный вариант между 256 и 512. |
SHA-512 | 512 бит / 128 hex | Длинные подписи, пароли с bcrypt-подобным хешированием. |
Нет. SHA-семейство считается через нативный crypto.subtle.digest, MD5 - через встроенный JavaScript. Строка не покидает браузер.
MD5 быстро брутфорсится на GPU - миллиарды попыток в секунду. Коллизии были найдены ещё в 2004. Для паролей используйте bcrypt, argon2id или scrypt - они специально замедлены и используют memory-hard функции.
Разные кодировки (UTF-8 vs Windows-1251) - разные байты - разный хеш. Мы считаем от UTF-8 bytes. Также следите за невидимыми символами: BOM, trailing newline, \r\n vs \n.