Я пытаюсь запустить следующий код в Oracle 1.7 и IBM 1.7 JDK.
KeyPairGenerator serverKpairGen = KeyPairGenerator.getInstance("RSA");
serverKpairGen.initialize(2048,new SecureRandom());
KeyPair serverKpair = serverKpairGen.generateKeyPair();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(serverKpair);
oos.close();
baos.close();
byte[] serializedObject = baos.toByteArray();
System.out.println(Base64.encode(serializedObject, false, false).length());
По умолчанию Oracle использует SunRsaSign в качестве поставщика по умолчанию для алгоритма RSA и где IBM использует IBMJCE
IBMJCE предоставляет пару ключей длиной 5100 байтов, а Oracle генерирует длину пары ключей почти 2800 байтов.
Я пытался установить SunJce в качестве поставщика, но он не поддерживает алгоритм RSA.
Есть ли в IBM SDK 1.6 или 1.7 возможность установить SunRSASign в качестве поставщика?Я заметил, что SunRSASign является частью rt.jar в Oracle Java. Можем ли мы уменьшить размер пары ServerKey в IBM Java до <4000 байт? </strong>
Можем ли мы получить длину размера ключа в IBM SDK, которая аналогична Oracle JDK?Есть ли другой поставщик по умолчанию в IBM, который дает меньший размер ключа с RSA2048.