Чем отличаются эти термины?
Шифрование
Кодирование
Хеширование
🔸 Шифрование
Обратимое преобразование информации с целью скрыть её содержимое. Шифруются данные с помощью секретного ключа, без которого расшифровать данные в исходное состояние невозможно.
Примеры использования:
- Шифрование бинарных файлов и архивов с помощью пароля
- Шифрование текста
🔸 Кодирование
Это преобразование данных из одного вида в другой. При этом содержимое данных остаётся прежним, меняется лишь форма (способ представления данных). Всегда можно вернуть данные в прежний вид с помощью обратного кодирования (декодирование).
Примеры использования:
- Кодирование текста из ASCII в UTF-8
- Кодирование изображения из BMP в TIF
- Кодирование строки в байты
🔸 Хеширование
Необратимое преобразование данных в строку определённой длины. Содержимое хеш-строки строго зависит от исходных данных и сильно изменяется даже если в данных изменить 1 бит. Хеширование всегда выдаёт одинаковый результат при одинаковых исходных данных. "Дехешировать" строку обратно в данные невозможно.
Примеры использования:
- Хранение пароля в базе данных в виде хеш-строки не раскрывает пароль и оставляет возможность проверять правильность введённого пользователем пароля.
- Хеш-строку файла еще называют контрольной суммой. Позволяет быстро проверить одинаковы ли файлы сравнив лишь хеши этих файлов. Даже если один пиксель в картинке изменится, контрольная сумма будет другой. Очень полезно для проверки необходимости обновления файлов по сети или поиска файлов.
🐍 Модули
🔹 Для работы с криптографией в Python используются внешние модули
cryptography
PyCrypto
🔹Хеширование и другие манипуляции с паролями и токенами
crypt
hashlib
secrets
hmac
Информация здесь
🔹 Всё что связано с кодировками
codecs
#libs
Post #150
1.15K