Какая разница между функциями хеширования и функциями шифрования
Python
Senior
Без компании
Какая разница между функциями хеширования и функциями шифрования
Ответы
Функции хеширования и шифрования служат разным целям:
- **Хеширование**:
- Преобразует данные в фиксированную строку (хеш).
- Необратимо (нельзя восстановить исходные данные из хеша).
- Используется для проверки целостности данных (например, пароли в базе данных).
- Пример: `hashlib.sha256("password".encode()).hexdigest()` → `"5e8848...b48a"`.
- **Шифрование**:
- Преобразует данные в зашифрованную форму, которую можно расшифровать обратно.
- Требует ключ для шифрования/дешифрования.
- Используется для конфиденциальности (например, HTTPS).
- Пример с `cryptography.fernet`: ```
from cryptography.fernet import Fernet
key = Fernet.generate_key()
cipher = Fernet(key)
encrypted = cipher.encrypt(b"secret")
decrypted = cipher.decrypt(encrypted) # b"secret"
```
**Ключевое отличие**: хеширование — одностороннее, шифрование — двустороннее.