|
0 / 0 / 0
Регистрация: 11.10.2019
Сообщений: 14
|
|||||||||||
OPENSsl RSA не расшифровывает зашифрованное сообщение11.10.2019, 17:09. Показов 4278. Ответов 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
|
||
|
фрилансер
6499 / 5730 / 1133
Регистрация: 11.10.2019
Сообщений: 15,316
|
|
| 13.10.2019, 08:43 | |
|
Rideslow, поймай случай кривого варианта, а затем прикрепи сюда оба ключа, in.txt и rsa.file
0
|
|
|
0 / 0 / 0
Регистрация: 11.10.2019
Сообщений: 14
|
|
| 13.10.2019, 08:49 [ТС] | |
|
0
|
|
|
фрилансер
6499 / 5730 / 1133
Регистрация: 11.10.2019
Сообщений: 15,316
|
||||||
| 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
|
|
|
фрилансер
6499 / 5730 / 1133
Регистрация: 11.10.2019
Сообщений: 15,316
|
|
| 13.10.2019, 10:54 | |
|
Rideslow, многопоточность - это не к студии вопрос, это ты сам её используешь или нет. Я уже понял, что нет
0
|
|
|
0 / 0 / 0
Регистрация: 11.10.2019
Сообщений: 14
|
||||||||
| 13.10.2019, 11:35 [ТС] | ||||||||
|
Да, нашли в чем косяк. Косяк глупый и лично мой. Дело в том, что и в правду файл для сохранения шифрованного сообщения открывался без флага O_BINARY. В первый раз когда мне об этом сказали, я не туда флаги вставлял и поэтому не работало
![]() Сейчас вставил флаги в нужное место и программа работает как Швейцарские часы. Спасибо всем, кто пытался мне помочь. Рабочий код прикрепил ниже, может кому-то пригодится для разбора, как это все работает.
0
|
||||||||
|
фрилансер
6499 / 5730 / 1133
Регистрация: 11.10.2019
Сообщений: 15,316
|
||||||
| 13.10.2019, 13:08 | ||||||
|
Rideslow, отрефакторил (без фанатизма), убрал утечки
0
|
||||||
|
фрилансер
6499 / 5730 / 1133
Регистрация: 11.10.2019
Сообщений: 15,316
|
|||||||
| 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
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|