使用带有 python 的 openssl 签署数据
Signing data using openssl with python
我目前正在使用下一个 opensll
命令签署数据:
openssl dgst -sign key.pem -sha256 -out signature.sig data.txt
如何使用 Python 实现此目的?
我在这里找到了答案(http://nullege.com/ and https://pyopenssl.readthedocs.org/en/stable/api/crypto.html):
import OpenSSL
from OpenSSL import crypto
import base64
key_file = open("C:\my.pem", "r")
key = key_file.read()
key_file.close()
password = "password of prk"
if key.startswith('-----BEGIN '):
pkey = crypto.load_privatekey(crypto.FILETYPE_PEM, key, password)
else:
pkey = crypto.load_pkcs12(key, password).get_privatekey()
print pkey
data = "data"
sign = OpenSSL.crypto.sign(pkey, data, "sha256")
print sign
data_base64 = base64.b64encode(sign)
print data_base64
我目前正在使用下一个 opensll
命令签署数据:
openssl dgst -sign key.pem -sha256 -out signature.sig data.txt
如何使用 Python 实现此目的?
我在这里找到了答案(http://nullege.com/ and https://pyopenssl.readthedocs.org/en/stable/api/crypto.html):
import OpenSSL
from OpenSSL import crypto
import base64
key_file = open("C:\my.pem", "r")
key = key_file.read()
key_file.close()
password = "password of prk"
if key.startswith('-----BEGIN '):
pkey = crypto.load_privatekey(crypto.FILETYPE_PEM, key, password)
else:
pkey = crypto.load_pkcs12(key, password).get_privatekey()
print pkey
data = "data"
sign = OpenSSL.crypto.sign(pkey, data, "sha256")
print sign
data_base64 = base64.b64encode(sign)
print data_base64