import os
import base64
import rsa
# 安装pycrypto
from Crypto import Random
from Crypto.Hash import SHA256
from Crypto.PublicKey import RSA
from Crypto.Signature import PKCS1_v1_5 as Signature_pkcs1_v1_5
"""
function 2:
openssl genrsa -out ./myPrivateKey.pem -passout pass:"密码" -des3 2048
openssl rsa -pubout -in ./myPrivateKey.pem -passin pass:"密码" -out ./myPublicKey.pem
"""
def gen_sign(unsign_data, secret):
"""
两种方式生成签名:
这是第一种
1. 打开文件方式,见所有被注释的部分,文件为.pem
2. passphrase 的参数为文件加密的密码
:return: 签名数据
"""
path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
doc = os.path.join(path, 'myPrivateKey.pem')
with open(doc) as pk:
key_data = pk.read()
rsaKey = RSA.importKey(key_data, passphrase=密码)
signer = Signature_pkcs1_v1_5.new(rsaKey)
digest = SHA256.new()
digest.update(unsign_data.encode('utf8'))
sign = signer.sign(digest)
signature = base64.b64encode(sign)
print(
Python 私钥生成签名和公钥验签的两种方式
最新推荐文章于 2025-06-29 20:34:48 发布