Ситуация:Не удалось расшифровать (ПАД блок поврежден) в Android (PBEWithMD5AndDES)
- Строка становится зашифрованы в среде Java (javax.crypto.Cipher/PBEWithMD5AndDES), в кодировке base64
- Строка перечисляется в используется Android
- же крипто декодер, только разные base64 библиотека
=> мы не смогли расшифровать, получая
java.lang.SecurityException: Не удалось расшифровать: блок колодки поврежден
В ходе анализа мы сравнили массивы байтов, передаваемых методу декодирования(), для того, чтобы пропустить все возможные проблемы base64 и массивы идентичны.
Опять же, два идентичных байтовых массива, переданные в один и тот же модуль java, создают разные результаты (ok на java, исключение на android).
Параметры, переданные в модуль Cipher, жестко закодированы и идентичны на обеих платформах.
Где разницу
Просьба представить фактический код, который вы используете для шифрования и дешифрования, и тестовый вектор, который работает на настольной Java, но не на Android. – Andy
Спасибо за предложение. Похоже, мы нашли причину - были использованы разные провайдеры. –