Как выяснить, является ли ключ неправильным или нет при попытке сделать расшифровку openssl - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь написать библиотечный метод для расшифровки данных, метод decryptData предоставляется ключом , IV, encryptedData и decryptedData :

decryptData (ключ без знака *, символ без знака * iv, символ без знака * encryptedData, символ без знака * decryptedData)

В приведенном выше методе порядок вызовов openSSL такой:

  1. EVP_CIPHER_CTX_new
  2. EVP_DecryptInit_ex
  3. EVP_DecryptUpdate
  4. EVP_DecryptFinal_ex

Все отлично работает с вышеуказанным методом, что я ищу для случаев ошибки для плохого ключа , как я узнаю, что пользователь предоставил неправильный ключ для дешифрования данных, если они выше openSSL звонки не удалось. Эти вызовы возвращают только SUCCESS (1) или Failed (0).

Мне нужно уведомить пользователя о том, что «ключ» неверный или не тот же ключ во время шифрования.

Любая помощь или указатель будет принята с благодарностью. Спасибо

1 Ответ

1 голос
/ 09 апреля 2019

Если под «плохим ключом» вы подразумеваете ключ, отличный от того, который использовался для шифрования данных, вы не можете знать, что он отличается.Расшифровка - это математическая операция, и она будет работать с любым ключом, который вы ей дадите, если он находится в допустимом формате - в конце концов, ключ - это просто набор чисел.Но если ключ дешифрования отличается от ключа, используемого для шифрования данных, открытый текст будет другим, или мусором.Если вы хотите, чтобы пользователь проверил, что открытый текст хорош, вам понадобится что-то в дополнение к шифрованию, например, предоставьте контрольную сумму открытого текста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...