No Such Algorithm : AES/GCM/NoPadding



我试图在Java代码中使用AES/GCM/NoPadding进行解密。下面是代码

public static byte[] decryptRes(final byte[] sessionKey, final String symetricKeyAlg,
final String pkiProvider, final String encXML, final String msgRefNo)
throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException,
BadPaddingException, NoSuchProviderException, InvalidAlgorithmParameterException {
Security.addProvider(new BouncyCastleProvider());
final StringBuilder strBuilder = new StringBuilder(msgRefNo);
strBuilder.append("0000");
final SecretKeySpec symmKeySpec = new SecretKeySpec(sessionKey, "AES");
final Cipher symmCipher = Cipher.getInstance("AES/GCM/NoPadding", "BC");
symmCipher.init(2, symmKeySpec, new IvParameterSpec(strBuilder.toString().getBytes()));
final byte[] xmlData = symmCipher.doFinal(base64Decode(encXML));
return xmlData;
}

现在,当调用该代码时,它抛出

异常:java.security.NoSuchAlgorithmException: No such algorithm: AES/GCM/NoPadding

NoSuchProviderException .

必要的提供程序已经添加,但我仍然得到上面提到的异常。

正在使用Java版本7。

使用:

  1. bcprov - jdk15to18 - 169. - jar

  2. bcprov - ext - jdk15to18 - 169. - jar

上面的jar文件可以在application lib文件夹中找到。

我终于可以解决上述问题了。所提供的代码绝对没有问题。然而,我正面临着这个问题,因为BouncyCastle罐子没有注册为服务提供商。更新java.security文件在

祝辞JAVAHOME/lib/安全/美元java.security

如果没有添加,则添加下面一行

security.provider灵活;#祝辞= org.bouncycastle.jce.provider.BouncyCastleProvider

点击链接查看详情:

https://makeinjava.com/install-bouncy-castle-provider-configuring-java-runtime-example/

最新更新