Предисловие:
Сначала посмотрите, что использовать аутентификацию сообщения, аутентификация сообщений - проверять, изменяется ли полученное сообщение и передается через анти-доверие. Он может помешать людям активным атакой модифицировать содержимое данных, а приемник не знает.
1. Аутентификация шифрования сообщения
Его основная цель — проверить, было ли сообщение изменено, так как же это проверить? Распространенным методом является использование кода аутентификации сообщения (MAC). Дайджест сообщения (msg), чтобы получить результат. Затем он склеивается с открытым текстом (М), и результат шифрования получается под действием функции шифрования Е и секретного ключа К2., отправьте его другой стороне.
После того, как другая сторона получает зашифрованный текст C, она сначала использует функцию дешифрования D и секретный ключ K1 для расшифровки, чтобы получить открытый текст., а затем используйте функцию алгоритма дайджеста и ключ K1 для шифрования открытого текста M, чтобы получить результат,какЭто означает, что сообщение нормальное и отправлено доверенной стороной, если оно не равно, результат будет отброшен.
2. Хеш-функция
Также известная как хеш-функция, ее сила заключается в способности преобразовывать данные переменной длины в строки фиксированной длины.Хеш-функция является односторонней функцией, и результат необратим. формулахэш-значение h обычно составляет 128 бит или 160 бит.
Хэш-функция в основном используется для извлечения дайджеста сообщения в цифровой подписи.
2.1 MD5
Наиболее часто MD5 используется для определения того, был ли файл изменен.Например, если вы хотите отправить сжатый пакет другим, вы можете сгенерировать значение MD5 файла сжатого пакета и отправить его другой стороне вместе. Другая сторона также генерирует значение MD5 после получения файла и сравнивает его с отправленным значением MD5, если оно непротиворечиво, проблем нет.
import hashlib
name = "我爱信息安全"
name_md5 = hashlib.md5(name.encode('utf8')).hexdigest()
print(f"原文:{name}\nMD5:{name_md5}")
# 原文:我爱信息安全
# MD5:f88750f47f532a82055d741060a993e2
Пример приложения MD5:
MD5 также можно использовать для борьбы с пиявками контента CDN.Предположим, у вас есть видеосайт для научно-популярных знаний, а его видеоконтент хранится в облаке.Экономические потери. Итак, что вы будете делать дальше?
Общие методы защиты от пиявки включают в себя: значение Referer, Cookie, IP, заголовок и т. д., но они могут быть подделаны и не очень безопасны. Затем вы можете использовать метод проверки токена, чтобы проверить действительность ссылки. Конкретные методы заключаются в следующем:
Например, ссылка: /test/p/java.image?token=0, секретный ключ: secret, set secret="java"
- настраиватьсрок действия ссылкисоставляет 60 минут, expire_time = now_time + 3600, формат — метка времени. expire_time=1620814643+3600=1620818243
- Рассчитать значение MD5, tok = MD5(url_path+expire_time+secret). tok = MD5("/test/p/java.image"+1620818243+"java")=ef9a78bf0fa14e20304a5fce49342f3c
- Конечный результат: tok = tok[средние 6 цифр]+expire_time, tok=e20304+1620818243=e203041620818243
- Конечный URL:
/test/p/java.image?token=e203041620818243
Когда пользователь запрашивает этот URL-адрес, платформа CDN получает время истечения срока действия.1620818243
, затем выполните тот же расчет MD5, чтобы увидеть,token
Значения совпадают.Если они совпадают, вы можете проверить, просрочено ли время истечения.
Суммировать
Аутентификация сообщения в основном предназначена для проверки конфиденциальности сообщения, что по-прежнему очень важно.
Справочная статья: