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

相關文章
相關標籤/搜索