Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Криптование ассиметричными ключами.


Автор: breeezy 20.2.2004, 09:42
Привет всем! Просветите, пожалуйста, невежду.
Задача простая - есть массив байтов и сгенерированная пара ключей. Хочу на сервере криптовать байты закрытым ключом, посылать их клиенту, а на клиенте декриптовать открытым ключом.

Я так понимаю, в sdk1.4.1 есть все, для того, чтобы генерировать пары ключей для DSA/RSA алгоритмов, есть средства обращения с ними, но как криптовать-декриптовать этими алгоритмами?

Нужно ли для этого регистрировать свой провайдер криптования?
Если есть уже написанные провайдеры, то где взять?

Код
     
   KeyPairGenerator kpg = null;
   kpg = KeyPairGenerator.getInstance( "DSA" );
   kpg.initialize( 1024 );
   KeyPair pair = kpg.genKeyPair();
   PrivateKey privateKey = pair.getPrivate();
   PublicKey publicKey = pair.getPublic();

   // ...
   Cipher ecipher = Cipher.getInstance("DSA"); // генерирует "no such algorithm provider exception"

Автор: DarkDS 20.2.2004, 13:01
Поищи cryptix jce provider

Автор: DarkDS 20.2.2004, 13:04
Да! Забыл... Брать на http://www.cryptix.org/

Автор: AntonSaburov 20.2.2004, 13:09
Цитата
Cipher ecipher = Cipher.getInstance("DSA");

А что это за DSA
Я знаю RSA, DAS, ну и еще можно глянуть, но DSA - такого нет.

Автор: breeezy 20.2.2004, 13:16
DSA - Digital Signature Algorithm.


Спасибо за ссылки!
Если кому интересно, оказывается, есть бесплатный провайдер на

http://www.bouncycastle.org/

Автор: AntonSaburov 20.2.2004, 16:06
Цитата
DSA - Digital Signature Algorithm.

И за бесплатного провайдера - спасибо smile.gif

Автор: vzf 19.6.2008, 10:33
DSA - это стандарт подписи в США.  Наш ГОСТ 34.10 чем то похож на этот алгоритм smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)