RSACryptoServiceProvider C#
Столкнулся с необходимостью шифровать данные при передаче по сети. Почитал мсдн, нашел там пример, переделал под себя, все заработало (в мсдн он немного громоздкий был).
Ну и уже в ходе использования программы столкнулся с ошибкой. Начал копать, и докопался до такой строчки:
Вот именно в ней возникает ошибка, при попытке зашифровать данные большого объема. Маленькие данные шифруются и расшифровываются на ура. Если данные большего размера, вылезает зксепшн "Неопознанная ошибка". Помогите отыскать грабли, буду очень благодарен.
Шифровать RSA большой объем данных очень накладно - это требует нехилых вычислительных ресурсов.
Обычно поступают по-другому. Создают сессионный (временный) ключ для какого-нибудь симметричного алгоритма (например DES3) и передают его другой стороне зашифрованным асимметричным алгоритмом вроде RSA. Далее обмен информацией осуществляется посредством выбранного симметричного алгоритма.
Обычно поступают по-другому. Создают сессионный (временный) ключ для какого-нибудь симметричного алгоритма (например DES3) и передают его другой стороне зашифрованным асимметричным алгоритмом вроде RSA. Далее обмен информацией осуществляется посредством выбранного симметричного алгоритма.
Спасибо, учту. И все-же, в программе шифруются MySQL запросы. Я бы не назвал MySQL запрос, в котором используется несколько раз SUBSTRING_INDEX, слишком большими данными, что бы отказываться от RSA. Или я не прав? Если нет - то поступлю по Вашему совету...
А разве мускул не предоставляет соединений через SSL?
Запрос возможно и маленький, да только ответ сервера не всегда такой.
Если вы организовываете шифрование поверх сетевого потока (NetworkSteam), то вполне оправданно пользоваться симметричными алгоритмами, хотя я не пробовал этим заниматься.
Запрос возможно и маленький, да только ответ сервера не всегда такой.
Если вы организовываете шифрование поверх сетевого потока (NetworkSteam), то вполне оправданно пользоваться симметричными алгоритмами, хотя я не пробовал этим заниматься.
Дело в том, что клиентам совсем не нужно иметь прямой доступ к мускулу. У пользователей программы две категории, простые пользователи, и администраторы. Простые пользователи и вовсе не отправляют запросов на мой сервер, только определенный набор данных, из которых сервер генерирует запрос. У администраторов имеется возможность посылать произвольный запрос на сервер. Так что SSL тут слегка неуместен.
Да и команды от простых пользователей иногда выходят большими. А ответ от сервера вовсе не шифруется. И эксепшн вываливается именно в клиенте, еще до попытки соединения с сервером. А именно при шифровании.
Ладно, спасибо. Если идей по поводу этой ошибки нету, буду разбираться с симметричными алгоритмами.