Java-密码自定义提供程序



我有一个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());

最新更新