Python шифрование с помощью закрытого ключа Rsa - PullRequest
0 голосов
/ 31 марта 2020

from Crypto import Random
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
import base64


def generate_keys():
    modulus_lenght = 256 * 4
    private_key = RSA.generate(modulus_lenght, Random.new().read)
    public_key = private_key.publickey()
    return private_key, public_key

def encrypt_private_key(a_message, private_key):
    encryptor = PKCS1_OAEP.new(private_key)
    encrypted_msg = encryptor.encrypt(a_message)
    encoded_encrypted_msg = base64.b64encode(encrypted_msg)
   return encoded_encrypted_msg

def decrypt_public_key(encoded_encrypted_msg, public_key):
    encryptor = PKCS1_OAEP.new(public_key)
    decoded_encrypted_msg = base64.b64decode(encoded_encrypted_msg)
    decoded_decrypted_msg = encryptor.decrypt(decoded_encrypted_msg)
    return decoded_decrypted_msg

private_key, public_key = generate_keys()

message = "Hello world"

encoded = encrypt_private_key(message, private_key)
decoded = decrypt_public_key(encoded, public_key)

Этот код возвращает ошибку TypeError: This is not a private key. Я знаю, что в RSA есть возможность шифрования с помощью закрытого ключа и дешифрования с помощью ключа c.

Для знака есть специальный API, но он должен использовать с ha sh, я не хочу использовать любой ha sh, только шифровать с помощью private и расшифровывать с помощью publi c.

с помощью openssl Мне удается зашифровать с помощью private и расшифровать с помощью publi c (RSA_private_encrypt и `RSA_public_decrypt)

Возможно, эта библиотека в python заблокировала эту опцию, потому что она небезопасна, но это то, что я хочу в python.

Я так много искал, но не нашел решения для этого, единственное решение было использовать знак (я не хочу использовать ха sh)

...