Python: pyopenssl OpenSSL ライブラリ関数への高レベルのインターフェイス

このパッケージは、OpenSSL ライブラリの関数への高レベルのインターフェイスを提供します。次のモジュールが定義されています: crypto、SSL

翻訳: このパッケージは、OpenSSL ライブラリの関数への高レベルのインターフェイスを提供します。次のモジュールが定義されています: crypto、SSL

書類

インストール

$ pip install pyopenssl

キーペアを生成する


from OpenSSL.crypto import PKey
from OpenSSL.crypto import TYPE_RSA, FILETYPE_PEM
from OpenSSL.crypto import dump_privatekey, dump_publickey


pk = PKey()

pk.generate_key(TYPE_RSA, 1024)

# PUBLIC KEY
dpub = dump_publickey(FILETYPE_PEM, pk)
print(dpub)

# PRIVATE KEY
dpri = dump_privatekey(FILETYPE_PEM, pk)
print(dpri)

署名と検証


from OpenSSL.crypto import PKey
from OpenSSL.crypto import TYPE_RSA
from OpenSSL.crypto import X509
from OpenSSL.crypto import sign, verify

pk = PKey()
pk.generate_key(TYPE_RSA, 1024)

# sign
signature = sign(pk, 'hello, world!'.encode('utf-8'), 'sha1')
print(signature)
# b'\xb2\xec\x01\xfc\x1ai\x1c...'

# verify 成功返回None,失败抛出异常:OpenSSL.crypto.Error
x509 = X509()
x509.set_pubkey(pk)
verify(x509, signature, 'hello, world!'.encode('utf-8'), 'sha1')

参考記事

  1. pyopenssl は openssl をカプセル化する Python モジュールです

おすすめ

転載: blog.csdn.net/mouday/article/details/131890920