Разница между ОСВ и КЛЮЧОМ. шифрование
Хорошо, поэтому я пытаюсь немного узнать о шифровании сообщений в своем приложении java. Я только что узнал, что СОЛЬ и КЛЮЧ не являются одинаковыми.
Может кто-нибудь помочь мне понять, какая разница между этими двумя?
Ответы
Ответ 1
Клавиша - грубо, эквивалент пароля; вы используете его для шифрования сообщения, а затем тот же ключ используется для дешифрования его обратно в исходный текст. (Ну, он становится немного сложнее, когда у вас есть общедоступные и закрытые ключи и т.д.)
A соль чаще всего встречается с криптографическими хеш-функциями, а не с функциями шифрования. Идея заключается в том, что вместо хэширования только ваших данных (например, пароля) вы хэш-данные + соль, где соль обычно представляет собой случайную структуру. У них есть (по крайней мере) две цели:
- Чтобы заблокировать злоумышленника, у которого есть доступ к хешированным данным от идентификации collision, используя таблицу радуги.
- Чтобы замедлить атакующего, который пытается атаковать грубой силой.
Ответ 2
Клавиша - это, по сути, пароль, с помощью которого вы блокируете исходное содержимое.
Чтобы сделать пароль более сложным для обратного проектирования, вы можете добавить соль к полученному шифрованию.
Чтобы дать явно простой пример, скажем, вы хотите зашифровать строку символов. Ваша процедура шифрования - это отмена слова.
Итак, для строки "Hello, World" после запуска шифрования ваша строка будет "dlroW, olleH".
Затем вы можете добавить к нему соль. В этом примере соль будет "foo", поэтому результатом после соления будет "dlroW, olleHfoo".
Теперь, если кому-то удалось перепроектировать алгоритм шифрования, они получат "oofHello World", который не является исходным сообщением, и, следовательно, ваша информация по-прежнему безопасна!
Это действительно используется, когда вы итеративно шифруете, например,
result = salt + encrypt (соль + шифрование (соль + шифрование (сообщение))).