java.security.NoSuchAlgorithmException: поставщик SunJCE не предоставляет DES / ECB / NoPadding - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь расшифровать данные с помощью org.jpos JCEHandler в Android, как показано ниже, код

public static byte[] decrypt(byte[] data, byte[] key, String algorithm) throws JCEHandlerException
{
    byte[] plainText;
    JCEHandler handler = new JCEHandler("com.sun.crypto.provider.SunJCE");
    SecretKeySpec secretKeySpec = new SecretKeySpec(key, algorithm);
    plainText = handler.decryptData(data, secretKeySpec);
    return plainText;
}

, но ловит исключение говорит, что провайдер SunJCE не предоставляет DES/ECB/NoPadding

Я называю этофункция, подобная приведенной ниже код

byteKey=Hex.decodeHex("abcdef0123456789".toCharArray());
Log.d("aabb","byteKey:"+byteKey);
TMK = Hex.decodeHex("abcdef0123456789".toCharArray());
byteKey = Crypto.decrypt(byteKey,TMK,"DES");

журнал byteKey: [B@1cbe2358

что мне делать, я стараюсь решить эту проблему, но всегда та же ошибка, могу ли я найти некоторые кодысделать тот же результат handler.decryptData в Android я могу найти любую помощь, пожалуйста ...

1 Ответ

0 голосов
/ 28 февраля 2019
JCEHandler handler = new JCEHandler("com.sun.crypto.provider.SunJCE");

Вы заставляете JCE-провайдера использовать SunJCE, который может не иметь соответствующей криптографической реализации для DES/ECB/NoPadding, вы можете попробовать другой алгоритм или использовать SpongyCastle как ваш поставщик безопасности.

Обновление: ECB режим уже оказался слабым, вам НЕ следует использовать режим ECB .

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