Криптография - алгоритм RSA в Java 1.4 - PullRequest
2 голосов
/ 19 июня 2010

Я использую Java 1.4.2_10 и пытаюсь использовать шифрование RSA:

Я получаю исключение NoSuchAlgorithmException для следующего кода:

cipher = Cipher.getInstance("RSA");

Это ошибка:

java.security.NoSuchAlgorithmException: Cannot find any provider supporting RSA
        at javax.crypto.Cipher.getInstance(DashoA6275)

Это прекрасно работает в 1.5 и выше, однако мне нужно использовать 1.4. Есть ли какой-нибудь обходной или сторонний продукт, который я могу использовать, чтобы это исправить?

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 20 июня 2010

Java 1.4 определенно поддерживает RSA , поэтому тот факт, что это не работает, говорит о том, что что-то более глубокое неправильно. Работает ли это с любыми другими шифрами (такими как "AES" или "DES")? Вы должны убедиться, что ваши провайдеры правильно настроены. Каков вывод следующего кода в вашей системе:

System.out.println("Providers: ");
java.security.Provider[] providers =  java.security.Security.getProviders();
for(int x = 0; x < providers.length; x++) {
    System.out.println("\t" + providers[x]);
}

System.out.println();
System.out.println("Algorithms: ");
java.util.Set algs = java.security.Security.getAlgorithms("Cipher");

java.util.Iterator i_algs = algs.iterator(); 
while(i_algs.hasNext()) {
    System.out.println("\t" + i_algs.next());
}
2 голосов
/ 19 июня 2010

Вы можете установить поставщика шифрования Bouncy Castle .Просто возьмите их банки и позвоните Cipher.getInstance("RSA", "BC")

...