Я использую логику парольного дескрипции с использованием шифрования java. При этом, получая экземпляр шифрования, используя cipher.getInstance("RSA/NONE/NoPadding")
. Я получаю следующее исключение: NoSuchAlgorithm
.Исключение исключения NoSuchAlgorithm при использовании метода cipher.getInstance
Этот же код работает на моей локальной настройке сервера jboss, но не работает в настройке сервера IBM-WAS. Есть ли разница между локальным сервером jboss и сервером WAS?
public static String decrypt(String encrypted, KeyPair keys) {
Cipher dec;
try {
dec = Cipher.getInstance("RSA/NONE/NoPadding"); //Exception raised
dec.init(Cipher.DECRYPT_MODE, keys.getPrivate());
} catch (GeneralSecurityException e) {
throw new RuntimeException("RSA algorithm not supported", e);//Catch block executed
}
}
Вход:
R Caused by: java.security.NoSuchAlgorithmException: Cannot find any provider supporting RSA/NONE/NoPadding
at java.lang.Throwable.<init>(Throwable.java:80)
at javax.crypto.Cipher.getInstance(Unknown Source)
at com.lsi.utils.JCryptionUtil.decrypt(JCryptionUtil.java:59)
Caused by: java.security.NoSuchAlgorithmException: Mode: NONE not implemented
at com.ibm.crypto.provider.RSA.engineSetMode(Unknown Source)
at javax.crypto.Cipher$a_.a(Unknown Source)
**Jar**
Jce.jar - javax.crypto.Cipher;
bcprov-jdk15-140.jar (External security provider jar)
Но обратите внимание, что * неправильно * называемый ЕЦБ, поскольку он не позволяет для шифрования блоков данных больше модуля (размер ключа). Кроме того, крайне опасно использовать «NoPadding». Вместо этого используйте OAEP в гибридной криптосистеме. –