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