🔐 Шифрование и хэширование: Защита данных изнутри
💡 Представьте: шифрование — это сейф с секретным кодом, а хэширование — уникальный отпечаток пальца для данных. Оба защищают информацию, но совершенно разными способами.
🔒 Шифрование: Искусство тайнописи
Основные принципы:
🔑 Пример RSA-шифрования:
Публичный ключ:
(n=3233, e=17)
Приватный ключ:
(n=3233, d=2753)
Шифрование:
Сообщение "65" → 65¹⁷ mod 3233 = 2790
Дешифровка:
2790²⁷⁵³ mod 3233 = 65
🖨️ Хэширование: Цифровые отпечатки
Свойства идеального хэша:
- Детерминированность: одинаковый вход → одинаковый выход
- Необратимость: нельзя получить исходные данные
- Устойчивость к коллизиям: разный вход → разный выход
Примеры хэшей SHA-256:
"hello" → 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e730...
"hello1" → 91e9240f415223982edc345532630710e94a7c52a48c42a5b5...
🔹 Изменение одного символа полностью меняет хэш
🆚 Ключевые различия
🔧 Где применяются?
Шифрование в действии:
- HTTPS-соединения (SSL/TLS)
- Шифрование дисков (BitLocker)
- Мессенджеры (Signal, WhatsApp)
Хэширование в работе:
- Хранение паролей в БД
- Цифровые подписи документов
- Проверка целостности файлов
⚠️ Опасные ошибки
- Использование MD5/SHA-1 для важных данных
- Хранение ключей шифрования вместе с данными
- Отсутствие "соли" для хэшей паролей
🚀 Современные стандарты
- Шифрование: AES-256, ChaCha20
- Хэширование: SHA-256, bcrypt
- Ключевой обмен: ECDH, X25519
🔗 Ресурсы: OWASP Cryptographic Cheat Sheet, NIST Special Publication 800-175B