Объяснение
Как работает Генератор хешей
Генератор hash вычисляет криптографические контрольные суммы для произвольных текстов прямо в браузере. Введённый текст кодируется как UTF-8 и обрабатывается выбранным алгоритмом SHA.
SHA-256 — самый распространённый алгоритм и даёт 256-битный hash (64 hex-символа). SHA-384 даёт 96 hex-символов, SHA-512 даёт 128 hex-символов. Эти алгоритмы относятся к семейству SHA-2, стандартизованному NIST в FIPS 180-4.
Hex и стандартный Base64 представляют одни и те же байты digest. Base64 компактнее, но при необходимости содержит +, / и дополнение и не является автоматически безопасным для URL.
Типичные ошибки
- Путать хеширование с шифрованием: Hash не является обратимым представлением открытого текста. Шифрование имеет другое назначение и обратимо с подходящим ключом.
- Использовать MD5 или SHA-1 для целей безопасности: Оба алгоритма имеют известные атаки коллизий и считаются небезопасными согласно BSI TR-02102-1.
- Использовать SHA-хеши для хранения паролей: Простые SHA-хеши вычисляются слишком быстро. Используйте bcrypt, scrypt или Argon2 с salt и фактором работы.
- Трактовать равенство хешей как тождество: Одинаковые хеши означают одинаковый ввод с чрезвычайно высокой вероятностью, но не с абсолютной уверенностью (теоретическая возможность коллизии).
Ограничения этого инструмента
- Нет функции salting — не подходит для хранения паролей.
- Только текстовый ввод, без файлов (для хешей файлов используйте отдельные инструменты).
- Нет режима HMAC (хеширование с ключом) — только простое вычисление hash.
- Нет встроенной проверки по известным значениям hash.
- Пробелы, переносы строк и нормализация Unicode не унифицируются, а хешируются как часть ввода UTF-8.
Источники
- BSI TR-02102-1: Криптографические методы — рекомендации и длины ключей. Федеральное ведомство Германии по информационной безопасности.
- NIST FIPS 180-4: Secure Hash Standard (SHS). Определяет SHA-256, SHA-384, SHA-512.
- RFC 1321: MD5 Message-Digest Algorithm (исторический, не рекомендуется для безопасности).
- Web Crypto API: Стандарт W3C для криптографических операций в браузере (crypto.subtle.digest).