Полное руководство по хешированию и шифрованию: правильное использование MD5, SHA256 и AES
Хеш vs. Шифрование: ключевое различие
| Хеш | Шифрование | |
|---|---|---|
| Обратимость | ❌ Однонаправленный | ✅ Расшифровываемый |
| Назначение | Проверки целостности, отпечатки | Конфиденциальная передача |
| Требуется ключ | Нет | Да |
| Примеры | MD5, SHA256 | AES, RSA |
Частая ошибка: «MD5 шифрует пароли» — MD5 — это хеш, не шифрование, и больше не является безопасным.
Хеш-алгоритмы
MD5
- Вывод: 128 бит (32 шестнадцатеричных символа)
- Скорость: Очень быстрая
- Безопасность: ❌ Склонен к коллизиям — не для безопасного использования
- Подходит для: Быстрых проверок целостности файлов (не безопасность)
Используйте инструмент MD5 для хеширования файлов или текста.
Семейство SHA
| Алгоритм | Длина вывода | Безопасность | Использование |
|---|---|---|---|
| SHA-1 | 160 бит | ❌ Склонен к коллизиям | Устаревшие системы |
| SHA-256 | 256 бит | ✅ Безопасен | Рекомендуется |
| SHA-512 | 512 бит | ✅ Безопасен | Повышенные требования к безопасности |
Используйте инструмент SHA256 для вычисления хешей SHA-256.
HMAC
Хеш + секретный ключ = код аутентификации сообщения. Проверяет как целостность, так и происхождение:
HMAC-SHA256(сообщение, секретный_ключ) → аутентифицированный хеш
Используйте инструмент HMAC для вычисления значений HMAC.
Алгоритмы шифрования
AES (Симметричное)
Один и тот же ключ шифрует и расшифровывает:
| Режим | Характеристики | Рекомендация |
|---|---|---|
| AES-128-CBC | Классический режим | Общее использование |
| AES-256-GCM | Аутентифицированное шифрование | Рекомендуется |
| AES-256-CTR | Потоковый стиль | Большие файлы |
Используйте инструмент AES для шифрования/расшифровки AES.
Когда использовать хеш vs. шифрование
Проверка загрузки файла → Сравнение хеша SHA256
Хранение паролей → bcrypt/argon2 (не MD5!)
Подписи API → HMAC-SHA256
Данные в пути → Шифрование AES-256-GCM
Частые ошибки и правильные практики
| Ошибка | Проблема | Правильный подход |
|---|---|---|
| MD5 для паролей | Радужные таблицы взламывают мгновенно | bcrypt/argon2 + salt |
| SHA256 для паролей | Слишком быстро, легко перебором | Специализированные хеш-функции для паролей |
| Захардкоженный ключ AES | Утечка исходного кода = утечка ключа | Переменные окружения / KMS |
| Режим ECB | Одинаковый открытый текст → одинаковый шифротекст | Использовать режимы CBC/GCM |
| Хеш = шифрование | Концептуальная путаница | Использовать AES, когда нужна расшифровка |
Криптографический набор инструментов ToolsKu
Всё работает на Web Crypto API, обрабатывается локально в вашем браузере:
- MD5 — Быстрый отпечаток (не для безопасности)
- SHA256 — Безопасное хеширование
- HMAC — Аутентификация сообщений
- AES — Симметричное шифрование/расшифровка
- RSA — Асимметричное шифрование/расшифровка
- SM2/SM3/SM4 — Китайские национальные криптографические стандарты
Итоги
Понимание разницы между хешированием и шифрованием — и выбор правильного алгоритма и режима — это основы безопасности. ToolsKu предлагает полный криптографический набор инструментов, работающий локально в браузере, идеально для разработки, отладки и обучения. Для продакшена используйте проверенные криптографические библиотеки.