Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> System.Security.Criptography RSA, Как использовать? 
V
    Опции темы
Ivankult
Дата 12.2.2010, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 8.9.2008

Репутация: нет
Всего: нет



Доброго времени суток. Возникла необходимость использования RSA, полез в msdn и только больше запутался. Нашел в интернете лишь ручную реализацию, хотя в .NET уже есть реализация этого алгоритма. На форуме тоже ничего путного не нашел(может руки кривые, но результат неизменен)))

1.как вручную задавать паблик-приват ключ?
2.как получить паблик-приват ключ?
3.Если я меняю один ключ, второй меняется автоматически? Иначе алгоритм работать не будет. Если нет, то как    
     вручную(какой метод использовать) это сделать?
4.как передавать ключ?

 smile 
--------------------
Стив Макконнелл: «Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете».
PM MAIL ICQ   Вверх
Heinzz
Дата 12.2.2010, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 12.12.2008
Где: .net

Репутация: 5
Всего: 9



Код

  static void Main(string[] args)
        {
            RSAParameters keyIncludePrivate;
            RSAParameters publicKey;
            
            //генерируем ключ
            GenerateKey(out keyIncludePrivate, out publicKey);

            //отсылаем публичный ключ клиенту и получаем зашифрованное сообщение
            byte[] recievedData = ClientCode(publicKey);

            //расшифровываем закрытым ключем
            RSACryptoServiceProvider sipher = new RSACryptoServiceProvider();
            sipher.ImportParameters(keyIncludePrivate);
            byte [] data =sipher.Decrypt(recievedData, true);

            Console.WriteLine(Encoding.ASCII.GetString(data));
        }

        private static void GenerateKey(out RSAParameters keyIncludePrivate, out RSAParameters publicKey)
        {
            RSACryptoServiceProvider sipher = new RSACryptoServiceProvider();
            keyIncludePrivate = sipher.ExportParameters(true);
            publicKey = sipher.ExportParameters(false);
            //можно и просто создать объект RSAParameters  и задать ему все члены вручную
        }

        static byte[] ClientCode(RSAParameters p)
        {
            byte[] message = Encoding.ASCII.GetBytes("Message");
            RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
            rsa.ImportParameters(p);
            return rsa.Encrypt(message, true);
        }


не понимаю чем Вас не устраивают случайные ключи? RSA - асимметричное шифрование, используется как правило для передачи ключа симметричного шифрования.


--------------------
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0387 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.