|
0 / 0 / 0
Регистрация: 11.10.2019
Сообщений: 14
|
|||||||||||
OPENSsl RSA не расшифровывает зашифрованное сообщение11.10.2019, 17:09. Показов 4244. Ответов 30
Всем привет. Уже несколько дней бьюсь над зашифровкой и расшифровкой текста через RSA шифрование. В интернете пытался найти в чем проблема, но так и не нашел. Почти у каждого кода, который я находил, примерно такая же реализация шифрования и расшифровки текста. Текст вроде и шифрует, но расшифровать он его не может( Мой код может и плохой, но это для меня как пример, чтобы понять сам механизм работы RSA шифрования. Так что за goto не ругайте)) Пишу в visual studio 2017. Помогите, пожалуйста.
Путем экспериментов выяснил, что программа прикрепленная ниже работает на пятый раз. Т.е. я запускаю ее, выбираю шифрование, потом расшифровку (после этого программа завершается с ошибкой). Запускаем еще раз и повторяем эту же процедуру 4 раза. На 5 раз программа не завершается с ошибкой, а расшифровывает текст. В чем может быть проблема?
0
|
|||||||||||
| 11.10.2019, 17:09 | |
|
Ответы с готовыми решениями:
30
RSA. ключи. чего-то не расшифровывает Зашифрованное число RSA меньше изначального шифруемого? Реализация RSA в OpenSSL |
|
0 / 0 / 0
Регистрация: 11.10.2019
Сообщений: 14
|
||
| 13.10.2019, 08:33 [ТС] | ||
|
Но выяснил один интересный момент. Когда я шифрую входные данные и помещаю их в rsa.file, в файле лежат данные подобные этому: "㙬༉ᐋ㒶쉆쟸枩懍ᣥ唰渏ナ፳䴩翧嗳嗟ͬ睎鳃䎢血蘡玙⡫ᴒ녅ކ쁭ꉂ㞯ᑇ坳㼞뺌 붦趭ꯐ⍤솗謀遍⸨獇橂顀ꟶ꾦勹䍄Ḷ웕皠Ⓨ襒켴㚄涚捯쥺둫⾈枱拠᳣쿺㗴⽷粢 㱷錏⩬ꇦ鿁Ѡᰴᬵ泹彋閉ༀ蹖똁癞豰痣绨ⲅ묎恎䦃䅾꽪민颗旧ᅺﯔ굡ﻩ㲒惽쾎砱 璐足擔軨퉜浡ꭀ". После этого я пытаюсь дешифровать файл закрытым ключом, и все дешифруется как надо. Но если в файле после шифрования оказываются данные подобные этому: "Z§—(ЯРFvT©% В,ЖёlUкоfюЂкElokG‚ГsҐk®Ґ>oTм%q!xa ДWiЖЗ—bСCЩоо9Кj¶оsўПЊІ™ЂљL¶АGл‡АЫАз-щyL–Oг^ј0f-~<«цУ/XJІў{НэуevДє•Јўа`ЋЂWщz‰ПѕlфўЧрN DрМЭў„Ч]кH?“жЕЕп`]AXWdю7„2ЋNа}ХE8eНaг5±Ќ 9ьР3”Э:*"ЭВ,>•’6DѓGjЬ깇*6eфOѓnРЇzOЊђ‰U МpґKєґvА Иx#", то RSA_private_decrypt возвращает -1 и программа завершается. С чем это может быть связанно?
0
|
||
|
фрилансер
6495 / 5724 / 1133
Регистрация: 11.10.2019
Сообщений: 15,286
|
|
| 13.10.2019, 08:43 | |
|
Rideslow, поймай случай кривого варианта, а затем прикрепи сюда оба ключа, in.txt и rsa.file
0
|
|
|
0 / 0 / 0
Регистрация: 11.10.2019
Сообщений: 14
|
|
| 13.10.2019, 08:49 [ТС] | |
|
0
|
|
|
фрилансер
6495 / 5724 / 1133
Регистрация: 11.10.2019
Сообщений: 15,286
|
||||||
| 13.10.2019, 09:53 | ||||||
|
Rideslow, я взял твой файл in.txt, зашифровал твоим ключом. Файл rsa.file получился по содержимому другим, нежели твой скинутый. При расшифровке твоим ключом - да, ошибка
тут можно предположить, что у тебя какая-то ошибка при генерации ключей. Попробуй один раз сгенерить ключи и постоянными ключами много раз зашифровать-расшифровать - будут ли сбои ? Есть ли у тебя многопоточноть? У openssl, насколько я знаю, нет поддержки многопоточности, нужно самому разруливать. У тебя вызывается OpenSSL_add_all_algorithms - вроде его нужно всего один раз при инициализации библиотеки вызывать? Может, дело во множественных вызовах. Ну и по коду вопрос (к багу он вряд ли относится) - вот ты выделяешь память
0
|
||||||
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
||
| 13.10.2019, 10:28 | ||
|
Добавлено через 5 минут У тебя после шифрования в файле 257 байт, хотя размер должен быть кратным 256.
0
|
||
|
0 / 0 / 0
Регистрация: 11.10.2019
Сообщений: 14
|
||||||||
| 13.10.2019, 10:37 [ТС] | ||||||||
|
Что касается многопоточности, то в настройках самой вижуалки не лазил, так что должна быть отключена. Точнее смогу ответить на вопрос, если подскажите где посмотреть. После переустановки openssl, OpenSSL_add_all_algorithms у меня вообще перестала видеть даже с подключенной для нее библиотекой #include <openssl/evp.h>. Я ее закомментировал. Программа работает так же. Выделение памяти взял с интернета. Программа как пример для меня служит, разобраться с openssl, как вообще все работает. Но что-то не работает ![]() Добавлено через 1 минуту
0
|
||||||||
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
|
| 13.10.2019, 10:44 | |
Сообщение было отмечено Rideslow как решение
Решение
1
|
|
|
фрилансер
6495 / 5724 / 1133
Регистрация: 11.10.2019
Сообщений: 15,286
|
|
| 13.10.2019, 10:54 | |
|
Rideslow, многопоточность - это не к студии вопрос, это ты сам её используешь или нет. Я уже понял, что нет
0
|
|
|
0 / 0 / 0
Регистрация: 11.10.2019
Сообщений: 14
|
||||||||
| 13.10.2019, 11:35 [ТС] | ||||||||
|
Да, нашли в чем косяк. Косяк глупый и лично мой. Дело в том, что и в правду файл для сохранения шифрованного сообщения открывался без флага O_BINARY. В первый раз когда мне об этом сказали, я не туда флаги вставлял и поэтому не работало
![]() Сейчас вставил флаги в нужное место и программа работает как Швейцарские часы. Спасибо всем, кто пытался мне помочь. Рабочий код прикрепил ниже, может кому-то пригодится для разбора, как это все работает.
0
|
||||||||
|
фрилансер
6495 / 5724 / 1133
Регистрация: 11.10.2019
Сообщений: 15,286
|
||||||
| 13.10.2019, 13:08 | ||||||
|
Rideslow, отрефакторил (без фанатизма), убрал утечки
0
|
||||||
|
фрилансер
6495 / 5724 / 1133
Регистрация: 11.10.2019
Сообщений: 15,286
|
|||||||
| 14.10.2019, 12:10 | |||||||
![]() в общем, в строках: 59 - при выходе остался не подчищенным bignum 63 - rsa и bignum78 - bignum Добавлено через 18 минут вот эти тоже вроде надо подчищать, когда не нужны становятся RSA* pubKey = PEM_read_bio_RSA_PUBKEY(pubKey_file, NULL, NULL, NULL);в итоге, код с указанными правками:
0
|
|||||||
| 14.10.2019, 12:10 | |
|
Есть ли для Аndroid класс реализации OpenSSL алгоритмом RSA ? Расшифровать сообщение, зашифрованное шифром Цезаря Как написать шифрование RSA на python без import RSA
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация
В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
|
Сукцессия 20. Война автоботов. Делаем ставки. Лёд против "пш-пш!".
anaschu 11.07.2026
Битва ИИ в ризосфере: Как мы скрестили жесткие ОДУ, закон Фика и «подземный шантаж»
Уважаемые коллеги!
Хочу поделиться уникальным опытом ведения междисциплинарной компьютерной разработки. Прямо. . .
|
Сукцессия 19. Какие выводы я сделал из модели? Часть 2.Внутримикоризный стехиометрический буфер и хроно-дискретные зоны экспансии
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы
Математический аппарат моделирования
|
Сукцессия 18. Какие выводы я сделал из войны грибов с деревьями? Часть 1- рассказ и немного про термины
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы
Математический аппарат моделирования
Система ОДУ описывает динамику изменения массы различных компонентов системы во времени. Ключевой. . .
|
|
Просветление в 5 секунд
kumehtar 10.07.2026
Андрей Веретенников выдал фразу недавно: "Вам не обязательно кем-то себя считать"
|
Эксперимент с картинкой-обложкой на CodinGame
Adler 10.07.2026
Решил на днях провести эксперимент. У меня есть аккаунт на CodinGame, ТОП-3 по РФ среди 2200 участников (в разделе соревнования по программированию ИИ-ботов). Там есть обложка, куда можно влепить. . .
|
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
|
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
|