之前都只写过AES-ECB和CBC模式的, 这个rsa的还是第一次写, 百度了好久,都不是自己想要的, 还是记录一下,代码还是很简单:
import base64
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5 as Cipher_pkcs1_v1_5
def encrypt():
pubkey = '''-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnbJqzIXk6qGotX5nD521Vk/24APi2qx6C+2allfix8iAfUGqx0MK3GufsQcAt/o7NO8W+qw4HPE+RBR6m7+3JVlKAF5LwYkiUJN1dh4sTj03XQ0jsnd3BYVqL/gi8iC4YXJ3aU5VUsB6skROancZJAeq95p7ehXXAJfCbLwcK+yFFeRKLvhrjZOMDvh1TsMB4exfg+h2kNUI94zu8MK3UA7v1ANjfgopaE+cpvoulg446oKOkmigmc35lv8hh34upbMmehUqB51kqk9J7p8VMI3jTDBcMC21xq5XF7oM8gmqjNsYxrT9EVK7cezYPq7trqLX1fyWgtBtJZG7WMftKwIDAQAB
-----END PUBLIC KEY-----'''
text = "3FB276EB0DE6CE91ABD80273F1295578A82EAC22410AB6C6F340765A8367257E"
rsakey = RSA.importKey(pubkey.encode())
ciper = Cipher_pkcs1_v1_5.new(rsakey)
en_data = base64.b64encode(ciper.encrypt(text.encode())).decode()
print(en_data)
encrypt()
两个注意事项:
1. 公钥pubkey的格式必须按照我上面这种格式! BEGIN,公钥,END都必须各自占一行!!我之前就是因为写成了一行, 所以一直报错!!
2. pubkey和明文text都必须先encode哈