Как использовать вектор инициализации в node.js криптографии? - PullRequest
0 голосов
/ 28 мая 2020

Недавно я пытался разработать функцию обмена призов. Пользователь получит зашифрованный текст, а сервер расшифрует этот текст, чтобы знать, что ему дать.

Дело в том, что я не совсем понимаю, как iv (вектор инициализации) в crypto.createCipheriv & crypto.createDecipheriv работает.

Насколько я понимаю, iv служит средством для достижения некоторой степени случайности, чтобы мы могли снизить вероятность взлома с помощью один и тот же ключ и алгоритм шифрования / дешифрования постоянно.

Моя проблема в том, должен ли я использовать один и тот же iv как на этапе шифрования, так и дешифрования? То есть, когда сервер выдал зашифрованные данные, должен ли он сохранять iv при создании шифра и использовать то же значение для последующего дешифрования? Что касается HTTP-запроса, если шифрование и дешифрование происходит в другом запросе, должен ли сервер сохранять iv в запросе шифрования и извлекать его в последующем запросе дешифрования?

...