Надежно ли CommonCrypto знает, когда мой ключ недействителен при расшифровке зашифрованного текста? - PullRequest
3 голосов
/ 21 октября 2011

Когда я пытаюсь расшифровать зашифрованный текст, используя неправильный ключ, CCCrypt возвращает kCCDecodeError.

Вопрос в том, надежно ли это (например, могу ли я гарантировать, что если он вернет успех, мой ключ ввода былключ, используемый для шифрования простого текста, и я также гарантирую, что мои выходные данные - это мой исходный простой текст) и как он может даже узнать, правильный ли мой ключ или нет?

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

1 Ответ

1 голос
/ 23 мая 2012

Если вы указали заполнение PCKS7 (kCCOptionPKCS7Padding), оно может определить, не удалось ли вам расшифровать его должным образом - большую часть времени. Существует вероятность того, что случайный результат неправильного ключа может привести к тому, что последние биты сообщения будут выглядеть как допустимые отступы PKCS7.

Единственное, что он может обнаружить, - это если ваш ключ вообще не является допустимой длиной.

...