https://pyopenssl.readthedocs.org/en/stable/python
pyopenssl是一个封装了openssl的python模块。网络
使用它能够方便地进行一些加解密操做。函数
利用PKey对象能够方便快速产生密钥对,而后dump_函数能够把PKey对象转成字节码方便写入文件,或者进行base64编码后进行网络传输。编码
from OpenSSL.crypto import PKey from OpenSSL.crypto import TYPE_RSA, FILETYPE_PEM from OpenSSL.crypto import dump_privatekey, dump_publickey pk = PKey() print(pk) pk.generate_key(TYPE_RSA, 1) dpub = dump_publickey(FILETYPE_PEM, pk) print(dpub) dpri = dump_privatekey(FILETYPE_PEM, pk) print(dpri)
利用sign和verify能够进行签名和验证,可是verify须要用到X509对象做为参数code
from OpenSSL.crypto import PKey from OpenSSL.crypto import TYPE_RSA, FILETYPE_PEM from OpenSSL.crypto import sign, verify from OpenSSL.crypto import X509 pk = PKey() pk.generate_key(TYPE_RSA, 1024) signature = sign(pk, 'hello, world!', 'sha1') print(signature) x509 = X509() x509.set_pubkey(pk) verify(x509, signature, 'hello, world!', 'sha1')
若是签名和原文本不能对上,那么verify函数会报错。对象
ssl