pyopenssl

https://pyopenssl.readthedocs.org/en/stable/python

pyopenssl是一个封装了openssl的python模块。网络

使用它能够方便地进行一些加解密操做。函数

1.产生密钥对

利用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)

2.签名与验证

利用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

相关文章
相关标签/搜索