pyopenssl


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

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對象作為參數


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函數會報錯。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM