Назад к вопросам
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'