2009-10-02 4 views
0

Просто хочу подтвердить свои мысли о CryptographicException при расшифровке. У меня есть некоторые тесты, точно такие, у кого неправильная пасфреза. Этот тест бросаетCryptographicException при расшифровке

System.Security.Cryptography.CryptographicException: Padding is invalid and cannot be removed. 

Я искал, что может вызвать это. Однако я ничего не мог найти. Это приводит меня к выводу, что, как только я использую неправильную passphraze для расшифровки, я получил эту ошибку.

Я прав?

Благодарим за любые комментарии. Cheers, X.

ответ

2

При использовании отступов, а ключ и IV не верны, дешифровка завершится неудачно в момент удаления отступов. Это связано с тем, что в любом случае проложенные байты не соответствуют выбранному PaddingMode. Есть небольшая вероятность, что это произойдет, и тогда дешифрование все равно пройдет без ошибок, но результат будет искажен.

Однако, если вы используете PaddingMode.None, вы все равно сможете расшифровать данные без ошибок (при условии, что длина открытого текста кратна размеру блока), но данные снова будут искажены.

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

+0

описание товара tansk для объяснения. Я думаю, что могу положиться на то, что после того, как я поймаю эту ошибку при расшифровке, это будет маловероятно, потому что была использована неправильная фраза. Так что я могу оставить ее, не беспокоясь о том, что st установлен или используется неправильно в реализации. –

Смежные вопросы