Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 07.07.2022
Сообщений: 93
.NET 8

Как зашифровать rsa другим ключом rsa?

09.06.2024, 23:26. Показов 833. Ответов 9
Метки rsa (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, пытаюсь зашифровать приватный ключ RSA для передачи его на сервер. Столкнулся с проблемой, что если зашифровать класс, где находится ключ, другим ключом шифрования, то выдаёт ошибку: "Error occurred during a cryptographic operation.".
Собственно, вот сам код:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
    using (RSACryptoServiceProvider rsaEncrypt = new RSACryptoServiceProvider())
    {
        Console.WriteLine("Начало!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
    
      
        UserKey user_key = new UserKey()
        {
            Username = log.Username,
            Key = publicKey,
        };
 
        var input = JsonSerializer.Serialize<Irecycle>(user_key);
        NetworkStream stream = tcp.GetStream();
        rsaEncrypt.FromXmlString(server_key);
 
      
        byte[] encryptTo = Encoding.UTF8.GetBytes(input);
       
          
            byte[] encrypted = rsaEncrypt.Encrypt(encryptTo, true);
            stream.Write(encrypted, 0, encrypted.Length);
        
 
     
 
 
 
 
        rsaEncrypt.Dispose();
    }
Как я могу зашифровать сообщение серверным ключом, дабы передать пользовательский ключ? Спасибо.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.06.2024, 23:26
Ответы с готовыми решениями:

Зашифровать сообщение имеющимся публичным ключом (RSA)
Господа, нуждаюсь в вашей помощи. Вопрос по RSA: Есть сгенерированный публичный ключ (public.crt), приватный ключ хранится на...

RSA шифруем ключом из файла *.pem
Добрый день! Есть задача зашифровать сообщение при помощи метода RSA и закрытого ключа в виде файла *.pem Пытаюсь выделить закрытый ключ...

RSA ,нужно зашифровать текст
Всем привет!Мне нужна помощь,нужно реализировать RSA шифрование.P Q и E нужно вводить с клавиатуры. Может у кого то есть готовый...

9
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
09.06.2024, 23:53
OrangeKeks, какая длина ключа и шифруемых данных? Они укладываются в эти пределы?
0
0 / 0 / 0
Регистрация: 07.07.2022
Сообщений: 93
10.06.2024, 00:16  [ТС]
ключ шифрования - 2048 бит. Данные: 1. юзернейм ~20 бит 2. ключ публичный, который был сделан на 2048 бит.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
10.06.2024, 00:39
OrangeKeks, длина массива encryptTo какая?

Добавлено через 6 минут
Цитата Сообщение от OrangeKeks Посмотреть сообщение
1. юзернейм ~20 бит
20 бит? Это как?

Цитата Сообщение от OrangeKeks Посмотреть сообщение
2. ключ публичный, который был сделан на 2048 бит.
Есть подозрение что независимо от типа переменной publicKey вы выходите за 214 байтов для ключа длиной в 2048 битов.
0
0 / 0 / 0
Регистрация: 07.07.2022
Сообщений: 93
10.06.2024, 11:58  [ТС]
EncryptTo.Length равна 539
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
10.06.2024, 13:38
Лучший ответ Сообщение было отмечено OrangeKeks как решение

Решение

OrangeKeks, вот видите. А c ключом в 2048 битов можно зашифровать максимум 214 байтов. Нужно шифровать частями. Пример есть в этой теме. Там файлы, но для потоков можно по аналогии сделать.
1
151 / 135 / 29
Регистрация: 02.07.2013
Сообщений: 969
10.06.2024, 14:31
у вас цель разобраться в шифровании или какая-то прикладная? если второе, то было бы рационально взять высокоуровневую готовую либу, потому как наплодить уязвимостей или багов можно как нечего делать.
если первое, то расскажите как вы представляете процесс симметричного шифрования сообщения ключем. в самом общем виде.
0
0 / 0 / 0
Регистрация: 07.07.2022
Сообщений: 93
10.06.2024, 14:59  [ТС]
Цитата Сообщение от golosalex Посмотреть сообщение
расскажите как вы представляете процесс симметричного шифрования сообщения ключем. в самом общем виде.
Вроде бы, RSA - это про ассиметричное шифрование, разве нет? Как представляю? Ну, у пользователя есть два ключа, общий и приватный. Общий он даёт серверу, чтобы тот мог шифровать им сообщения, предназначенные для пользователя. Зашифрованные байты приходят пользователю - он их дешифрует приватным ключом. Всё.
0
151 / 135 / 29
Регистрация: 02.07.2013
Сообщений: 969
11.06.2024, 09:28
Цитата Сообщение от OrangeKeks Посмотреть сообщение
Вроде бы, RSA - это про ассиметричное шифрование, разве нет? Как представляю? Ну, у пользователя есть два ключа, общий и приватный. Общий он даёт серверу, чтобы тот мог шифровать им сообщения, предназначенные для пользователя. Зашифрованные байты приходят пользователю - он их дешифрует приватным ключом. Всё.
все верно это несимметричное шифрование я напутал...
вроде бы по логике ничего не мешает пользоваться несимметричным шифрованием для передачи данных, но вроде так делать нехорошо - очень медленно и только в одну сторону. может вам стоит использовать готовые криптолибы или фреймворки? потому что велосипедование в криптографии черевато неожиданными уязвимостями.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
11.06.2024, 11:27
Цитата Сообщение от OrangeKeks Посмотреть сообщение
пытаюсь зашифровать приватный ключ RSA
Цитата Сообщение от OrangeKeks Посмотреть сообщение
Key = publicKey
Так приватный или публичный?
Если второе, то как следует из названия — это открытый ключ, который скрывать не нужно.
Если первое, то его обычно никуда не передают — на то он и приватный, что хранится только на сгенерировавшей его стороне.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.06.2024, 11:27
Помогаю со студенческими работами здесь

Про RSA. В чём отличие класса RSA от RSACryptoServiceProvider (правда, что он сохраняет где-то ключ в Windows?)
Коллеги, разбираюсь потихоньку с реализацией RSA на C#. Есть несколько вопросов. Первый, самый волнующий на данный момент - чем в...

Имея лишь modulus и exponent зашифровать строку при помощи RSA
В общем, есть код на C#, и есть проект на C++. Нужно в этот проект встроить этот код. Проблемы в наличии библиотек. Нужно: имея лишь...

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

Алгоритм RSA. Зашифровать введенное с клавиатуры сообщение, используя открытый ключ
Доброе время суток, форумчане! Прощу помощи!!! Дело жизни и смерти! На днях выдали лабораторное задание, которое сказали...

Реализация функции вычисления электронно-цифровой подписи RSA. Реализация функции проверки ЭЦП RSA
Последовательность выполняемых действий включает следующие шаги. 1. Сформировать два простых числа p и q длиной 2 десятичных знака. 2....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru