|
0 / 0 / 0
Регистрация: 11.10.2019
Сообщений: 14
|
|||||||||||
OPENSsl RSA не расшифровывает зашифрованное сообщение11.10.2019, 17:09. Показов 3990. Ответов 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
|
||
|
фрилансер
6442 / 5636 / 1127
Регистрация: 11.10.2019
Сообщений: 14,982
|
|
| 13.10.2019, 08:43 | |
|
Rideslow, поймай случай кривого варианта, а затем прикрепи сюда оба ключа, in.txt и rsa.file
0
|
|
|
0 / 0 / 0
Регистрация: 11.10.2019
Сообщений: 14
|
|
| 13.10.2019, 08:49 [ТС] | |
|
0
|
|
|
фрилансер
6442 / 5636 / 1127
Регистрация: 11.10.2019
Сообщений: 14,982
|
||||||
| 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
|
|
|
фрилансер
6442 / 5636 / 1127
Регистрация: 11.10.2019
Сообщений: 14,982
|
|
| 13.10.2019, 10:54 | |
|
Rideslow, многопоточность - это не к студии вопрос, это ты сам её используешь или нет. Я уже понял, что нет
0
|
|
|
0 / 0 / 0
Регистрация: 11.10.2019
Сообщений: 14
|
||||||||
| 13.10.2019, 11:35 [ТС] | ||||||||
|
Да, нашли в чем косяк. Косяк глупый и лично мой. Дело в том, что и в правду файл для сохранения шифрованного сообщения открывался без флага O_BINARY. В первый раз когда мне об этом сказали, я не туда флаги вставлял и поэтому не работало
![]() Сейчас вставил флаги в нужное место и программа работает как Швейцарские часы. Спасибо всем, кто пытался мне помочь. Рабочий код прикрепил ниже, может кому-то пригодится для разбора, как это все работает.
0
|
||||||||
|
фрилансер
6442 / 5636 / 1127
Регистрация: 11.10.2019
Сообщений: 14,982
|
||||||
| 13.10.2019, 13:08 | ||||||
|
Rideslow, отрефакторил (без фанатизма), убрал утечки
0
|
||||||
|
фрилансер
6442 / 5636 / 1127
Регистрация: 11.10.2019
Сообщений: 14,982
|
|||||||
| 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 | |
|
Помогаю со студенческими работами здесь
31
Есть ли для Аndroid класс реализации OpenSSL алгоритмом RSA ? Расшифровать сообщение, зашифрованное шифром Цезаря Как написать шифрование RSA на python без import RSA
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|