Чем хэш MD5 или SHA-X отличается от шифрования?

Я пару раз читал, что MD5 не является шифрованием, например, на MD5 ... Шифрование? или утилита дайджеста сообщений командной строки.

Что ж, я понял, что это дайджест хеша / сообщения, и объяснение в приведенных выше ссылках говорит, что для шифрования должен быть ключ, а хеш / md - криптографическая хеш-функция, которая выдает только сигнатуру. Я не очень понимаю разницу. Разве вы не видите криптографическую хэш-функцию / алгоритм в качестве ключа?

Кроме того, в чем разница между чем-то криптографическим и шифрованием?

3 ответа

Решение

Вы не можете "расшифровать" хешированную функцию md5, и вы выбрали неверный алгоритм, если хотите передавать информацию, а получатель не может ее прочитать.

Поэтому шифрование должно быть дешифруемым. MD5 - это "криптографическая" хеш-функция, потому что очень трудно создать блок информации, который имеет конкретное заданное хеш-значение. Поэтому, если вы хотите подписать сообщение, достаточно подписать хеш. Это потребляет меньше вычислительной мощности, и получатель может быть уверен, что исходное сообщение не затронуто.

Алгоритм хеширования приводит к незаменимой потере информации об исходных данных, тогда как алгоритм шифрования имеет соответствующий алгоритм дешифрования, который восстанавливает исходные данные.

Это может быть показано в том, что результаты алгоритма хеширования имеют одинаковый размер (128, 160, 256 и т. Д.) Независимо от входных данных, тогда как результаты алгоритма шифрования имеют переменный размер в зависимости от размера входных данных.

Я не думаю, что вы можете рассматривать саму функцию как ключ. Поскольку ключ - это то, что вы передаете функции, чтобы зашифровать или расшифровать (<- невозможно с md5) сообщение.

Другие вопросы по тегам