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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы с расшифровкой, алгоритм RSA 
V
    Опции темы
ДобренькийПапаша
Дата 20.6.2009, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

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



Нашёл mr.Duda выкладывал в старой теме реализацию RSA шифрования... я её себе вклинил в код...
Я при создании нового пользователя, шифрую его пароль и сую его в зашифрованном виде в базу, проверил, зашифровано, всё нормально.
Исключение следующее:
"The data to be decrypted exceeds the maximum for this modulus of 128 bytes" (Данные, которые будут расшифрованы, превышают максимум для этого модуля 128 байтов)
Код

{
//Соединяюсь с базой
//При проверке логина\пароля, читаю в tmppwd пароль в зашифрованном виде (проверил, читаю нормально)
                    UnicodeEncoding ByteConverter = new UnicodeEncoding();
                    byte[] curpass = ByteConverter.GetBytes(tmppwd);                      
                    byte[] decryptedData;                          //дешифрованный пароль
                    
                    RSACryptoServiceProvider RsaForExp = new RSACryptoServiceProvider();
                    decryptedData = RSADecrypt(curpass, RsaForExp.ExportParameters(true), false);     //вызов дешифратор
                    tmppwd = ByteConverter.GetString(decryptedData);
                    MessageBox.Show(tmppwd, "Дешифрованный пароль!!!");              //Проверка. Но сюда управление не доходит из-за исключения
}


static public byte[] RSADecrypt(byte[] DataToDecrypt, RSAParameters RSAKeyInfo, bool DoOAEPPadding)
        {
            
                RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
                
                RSA.ImportParameters(RSAKeyInfo);
                
                return RSA.Decrypt(DataToDecrypt, DoOAEPPadding);
            
        }   
 

Как решить данную проблему?
код (шифрования\дешифрования) спёр отсюда Винград
Там mr.Duda написал, что RSACryptoServiceProvider не реализован... 


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
ДобренькийПапаша
Дата 22.6.2009, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

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



Ясно, он не может дешифровать если массив байтов превышает 128, а я получаю зашифрованную строку в 172 символа. В принципе есть выход при шифрвоке указать, чтобы шифрация проходила на не более чем 128 символов, а как это сделать, кто-нибудь знает? Возможно CryptoServicesProvider надо настроить...


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
_hunter
Дата 22.6.2009, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



а что мешает разбивать шифруемые данные на блоки по 128 байт?..


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
ДобренькийПапаша
Дата 22.6.2009, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

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



Это и есть выход, нагуглил даже. Я не сразу въехал в чём тут дело просто.
Но уже не надо, уже с помощью MD5 сделал шифрование.


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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