RSA шифрует / расшифровывает между C и python

У меня есть сервер, написанный на python и клиенте на C Их задача – отправить секретное сообщение от сервера к клиенту, которое зашифровано с помощью RSA private key . Я использую библиотеку openssl/rsa.h , то есть инициализацию объекта rsa с помощью закрытого ключа и шифрование сообщения с помощью RSA_public_encrypt(length_of_message, "Secret Message", to, rsa, RSA_PKCS1_PADDING) . Затем я отправляю это зашифрованное сообщение на сервер python и пытаюсь расшифровать его с помощью того же закрытого ключа, используя библиотеку from Crypto.PublicKey import RSA . Проблема в том, что он не расшифровывает его должным образом. Он всегда выводит сообщение длиной 128 бит, где секретное сообщение помещается в него случайно (eg '\x23\xa3x\43...Secret Message\xef\x4a') , где он обычно должен возвращать только Secret Message .

  • Именованные каналы между C # и Python
  • Автоматически создавать графический интерфейс из XML-схемы
  • Использование Cython для предоставления функциональности другому приложению
  • как правильно передать массив numpy в функцию Cython?
  • Каковы некоторые методы генерации кода?
  • Эффективный способ найти длинную повторяющуюся строку для Python (From Programming Pearls)
  • Как я могу использовать valgrind с расширениями Python C ++?
  • Объекты против экземпляра в python
  • Отсутствует Python.h при попытке скомпилировать модуль расширения C
  • встраивание python
  • как сделать PKCS8 RSA-подпись в python
  • Портирование оптимизированного сита эратосфенов от Python до C ++
  • One Solution collect form web for “RSA шифрует / расшифровывает между C и python”

    Проблема была в дополнении. Модуль rsa Python расшифровывает результат с дополнением PKCS1 и не удаляет PKCS1 . С помощью функции, ниже которой я взял здесь проблему, была решена проблема:

     def pkcs1_unpad(text): if len(text) > 0 and text[0] == '\x02': # Find end of padding marked by nul pos = text.find('\x00') if pos > 0: return text[pos+1:] return None 
    Python - лучший язык программирования в мире.