我有一个具有解密功能的Android应用程序:
private static byte[] decrypt(byte[] keybytes, byte[] data)
{
SecretKeySpec key = new SecretKeySpec(keybytes, "AES");
Cipher localCipher = Cipher.getInstance("AES/ECB/ZeroBytePadding");
localCipher.init(2, key);
return localCipher.doFinal(data);
}
这在应用程序中工作正常,但我需要一个java应用程序,我的电脑也能够执行解密,但以下代码给我错误:
“线程中的异常”主“java.security.NoSuchAlgorithmException:找不到任何支持AES / ECB / ZeroBytePadding的提供者”
我读到JRE没有正确的提供程序来支持这种算法(我认为它是Bouncy Castle)。
那么我该如何添加此提供程序或者替代方法来执行相同的功能呢?
答案 0 :(得分:1)
您可以在项目中添加Bouncycastle提供程序,并确保在调用Cipher.getInstance()之前已使用Security类注册了提供程序。您可以通过以下方式执行此操作:
Security.addProvider(new BouncyCastleProvider());