Проблема с шифрованием Java - PullRequest
3 голосов
/ 17 марта 2010

Я использую шифрование PBE для шифрования и дешифрования некоторого текста в приложении Android, но я получаю исключение BadPaddingException: с сообщением «блок блок поврежден», когда я использую неправильный закрытый ключ для расшифровки текста. Мой вопрос, так как я не очень хорошо разбираюсь с шифрованием в Java, заключается в том, является ли это нормальным поведением API шифрования, потому что мне нужно сделать некоторую логику в случае, когда введен неправильный ключ, но я не знаю частного ключ, и при этом я нигде не храню его (сохраняя только зашифрованный и расшифрованный текст чека).

Спасибо, Михай

Ответы [ 3 ]

5 голосов
/ 17 марта 2010

Это нормально, что большинство несоответствий клавиш приводит к "ошибке плохого заполнения". Но и это не на 100% надежно. Например, в случае симметричного шифрования с заполнением PKCS # 5 (очень распространенный способ заполнения данных), около 0,4% неправильных ключей не приведет к неправильному заполнению. Дешифрованные данные все равно будут мусором, но, случайно, этот мусор закончился допустимым заполнением. Ваше приложение не должно указывать, является ли сбой расшифровки из-за плохого заполнения или мусора со странным допустимым заполнением: эта информация (является ли ключ частью 0,4% ключей, которые дают правильное заполнение ) утечка, которая может иметь серьезные последствия. Таким образом, было несколько атак на SSL-соединения.

0 голосов
/ 17 марта 2010

Да, меньше идеального (http://developer.android.com/reference/javax/crypto/BadPaddingException.html). Логика дешифрования должна убрать заполнение до , оно доходит до реального зашифрованного текста, и на этой ранней стадии дела идут плохо.

0 голосов
/ 17 марта 2010

Короче говоря, да, BadPaddingException - это то, что вы должны ожидать, если при расшифровке использовался неправильный пароль / ключ.

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

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