没有这样的算法:AES/GCM/NoPadding
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;
}
现在,当调用此代码时,它抛出
Exception : java.security.NoSuchAlgorithmException: No such algorithm: AES/GCM/NoPadding
而不是
NoSuchProviderException.
已经添加了必要的提供程序,但我仍然遇到上述异常。
Java version 7 being used.
使用的罐子:
-
bcprov-jdk15to18-169.jar
-
bcprov-ext-jdk15to18-169.jar
上述 jar 在应用程序 lib 文件夹中可用。
我终于可以解决上述问题了。提供的代码绝对没有问题。但是,由于 BouncyCastle jar 未注册为服务提供商,我遇到了这个问题。
在
下更新了java.security文件
>$JAVAHOME/lib/security/java.security
如果未添加提供的,请添加以下行
security.provider.<#>=org.bouncycastle.jce.provider.BouncyCastleProvider
关注link了解详情:
https://makeinjava.com/install-bouncy-castle-provider-configuring-java-runtime-example/
我正在尝试在 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;
}
现在,当调用此代码时,它抛出
Exception : java.security.NoSuchAlgorithmException: No such algorithm: AES/GCM/NoPadding
而不是
NoSuchProviderException.
已经添加了必要的提供程序,但我仍然遇到上述异常。
Java version 7 being used.
使用的罐子:
-
bcprov-jdk15to18-169.jar
-
bcprov-ext-jdk15to18-169.jar
上述 jar 在应用程序 lib 文件夹中可用。
我终于可以解决上述问题了。提供的代码绝对没有问题。但是,由于 BouncyCastle jar 未注册为服务提供商,我遇到了这个问题。 在
下更新了java.security文件>$JAVAHOME/lib/security/java.security
如果未添加提供的,请添加以下行
security.provider.<#>=org.bouncycastle.jce.provider.BouncyCastleProvider
关注link了解详情:
https://makeinjava.com/install-bouncy-castle-provider-configuring-java-runtime-example/