我有一个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应用程序来让我的电脑也能执行解密,但以下代码给了我错误:
线程"main"java.security.NoSuchAlgorithmException中出现异常:找不到任何支持AES/EECB/ZeroBytePadding的提供程序"
我读到JRE没有正确的提供程序来支持此算法(我认为它是Bouncy Castle)。
那么,我如何添加此提供程序,或者另选一种变通方法来执行相同的功能呢?
您可以将Bouncycastle提供程序添加到您的项目中,并确保在调用Cipher.getInstance()之前已向Security类注册了该提供程序
Security.addProvider(new BouncyCastleProvider());