Назад к вопросам
Junior
94
questionbank
В чем разница между хешированием и шифрованием?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Хеширование преобразует входные данные в фиксированный хеш-код, необратимый процесс. Шифрование преобразует данные в неудобочитаемый шифротекст, обратимый с помощью ключа.
Основные отличия представлены в таблице:
| Характеристика | Хеширование | Шифрование |
|---|---|---|
| Назначение | Проверка целостности, быстрая идентификация | Обеспечение конфиденциальности |
| Обратимость | Необратимо | Обратимо (с ключом) |
| Размер выходных данных | Фиксированный размер (хеш) | Переменный размер (часто больше/равен входу) |
| Требуется ключ | Нет | Да (для шифрования и/или дешифрования) |
Пример хеширования (SHA-256):
import hashlib
data = b"Secret data"
hash_object = hashlib.sha256(data)
hex_digest = hash_object.hexdigest()
// print(hex_digest) // Печатает хеш в шестнадцатеричном формате
Пример симметричного шифрования (AES с cryptography):
from cryptography.fernet import Fernet
// Генерация ключа
key = Fernet.generate_key()
cipher_suite = Fernet(key)
// Шифрование
plain_text = b"Confidential message"
cipher_text = cipher_suite.encrypt(plain_text)
// print(cipher_text)
// Дешифрование
decrypted_text = cipher_suite.decrypt(cipher_text)
// print(decrypted_text) // b'Confidential message'