如何使用 python Openssl public 密钥加密字符串?

How to encrypt a string using python Openssl public key?

我当前生成 OpenSSL public-私钥对的代码:

import OpenSSL

key = OpenSSL.crypto.PKey()
key.generate_key(OpenSSL.crypto.TYPE_RSA, 2048)
public_key = OpenSSL.crypto.dump_publickey(OpenSSL.crypto.FILETYPE_PEM, key)
private_key = OpenSSL.crypto.dump_privatekey(OpenSSL.crypto.FILETYPE_PEM, key)
print(public_key, private_key, sep="\n")

文档建议您调用 key.to_cryptography() 获取加密密钥,然后使用 pyca/cryptography 执行加密。

https://www.pyopenssl.org/en/stable/api/crypto.html

鉴于您的加密密钥:

result = crypto_key.encrypt(b"Hello there")

我应该补充一点,RSA 主要用于签名和验证以及密钥交换。对于一般加密来说太慢了。