gpt4 book ai didi

java - 找不到任何支持 AES/GCM/NoPadding 的提供商

转载 作者:行者123 更新时间:2023-12-02 13:24:19 24 4
gpt4 key购买 nike

我们正在尝试在 java 7 中进行支持 AES/GCM/NoPadding 的加密,但出现异常。

找不到任何支持 AES/GCM/NoPadding 的提供商

生成密码实例的代码示例如下。

SecretKeySpec eks = new SecretKeySpec(k, "AES");
Cipher c = Cipher.getInstance("AES/GCM/NoPadding");
c.init(Cipher.ENCRYPT_MODE, eks, new GCMParameterSpec(128, iv));

最佳答案

Java 7 SE ( exception for Solaris ) 不支持此密码。

public static void main(String[] args) throws Exception {
for (Provider provider : Security.getProviders()) {
for (Map.Entry<Object, Object> entry : provider.entrySet()) {
if (((String) entry.getValue()).contains("GCM")) {
System.out.printf("key: [%s] value: [%s]%n",
entry.getKey(),
entry.getValue());
}
}
}
}

您可以看看Bouncy Castle在这种情况下作为服务提供商。

使用 BouncycaSTLe 的小片段。

  1. http://www.bouncycastle.org/latest_releases.html 下载 bcprov-jdk15on-154.jar
  2. 在代码中注册服务提供商

    Security.addProvider(new BouncyCastleProvider());
  3. 然后您就可以使用密码作为(参数“BC”指定使用Bounce CaSTLe作为服务提供者,如果没有其他提供者可以省略相同的密码)

    Cipher c = Cipher.getInstance("AES/GCM/NOPADDING", "BC");

Java 8 支持开箱即用的密码

Cipher c = Cipher.getInstance("AES/GCM/NOPADDING");

关于java - 找不到任何支持 AES/GCM/NoPadding 的提供商,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37431211/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com