【问题标题】:Java - Cipher custom providerJava - 密码自定义提供程序
【发布时间】:2015-12-16 05:56:48
【问题描述】:

我有一个带有解密功能的安卓应用程序:

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)。

那么如何添加此提供程序或替代方法来执行相同的功能?

【问题讨论】:

    标签: java android encryption


    【解决方案1】:

    您可以将Bouncycastle 提供程序添加到您的项目中,并确保您在调用 Cipher.getInstance() 之前已使用Security 类注册了该提供程序。您可以通过以下方式执行此操作:

    Security.addProvider(new BouncyCastleProvider());
    

    【讨论】:

    • 谢谢,正是我需要的!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-14
    • 1970-01-01
    • 2013-01-22
    • 2010-12-12
    • 2021-11-21
    • 1970-01-01
    相关资源
    最近更新 更多