Контрольная сумма MD5 используется для проверки целостности данных файла. Мне нужно обновить мой клиент, чтобы использовать HTTPS для большей безопасности.
Но при чтении документации по API службы BLOB-объектов Azure (https://blogs.msdn.microsoft.com/windowsazurestorage/2011/02/17/windows-azure-blob-md5-overview/), в нем говорится, что:
«Проверка MD5 необязательна как для операций PUT, так и для операций GET; однако она предоставляет удобное средство для обеспечения целостности данных в сети при использовании HTTP. Кроме того, поскольку HTTPS обеспечивает безопасность транспортного уровня, дополнительная проверка MD5 не требуется при подключении через HTTPS, поскольку это было бы лишним».
- Во-первых, почему проверка MD5 необязательна. Потому что я думаю, что генерация MD5 очень быстрая, поэтому может не помешать сделать ее обязательной.
- Во-вторых, почему в случае с HTTPS это избыточно. Потому что может случиться так, что файл, который я хочу загрузить, может пройти промежуточный этап. Например, я могу передать файл в электронном виде своему младшему для загрузки. Таким образом, может случиться так, что он может изменить файл и загрузить его. Если у меня есть контрольная сумма, я могу скачать файл и проверить его целостность.
- Пожалуйста, также посоветуйте алгоритм для вычисления контрольной суммы MD5 в Java. Потому что алгоритм, которому я следовал из официальной документации IETF (https://www.ietf.org/rfc/rfc1321.txt) не работает.