python pkcs8 私钥签名

python pkcs8 私钥签名

  • 生成公私钥

    openssl genrsa -out rsa_private_key.pem 2048
    
    openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key_2048.pub
    
    openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt > rsa_private_key_pkcs8.pem
    

  • 安装依赖

    pip install pycryptodome
    
  • 签名

    from Crypto.Signature import PKCS1_v1_5 as pk
    from Crypto.Hash import SHA
    from Crypto.PublicKey import RSA
    import base64
    
    
    origin_data = 'hello'
    
    
    def rsa_sign(des_reqdata):
        pkcs8_private_key = RSA.importKey(open('rsa_private_key_pkcs8.pem', 'r').read())
        h = SHA.new(des_reqdata)
        signer = pk.new(pkcs8_private_key)
        signature = signer.sign(h)
    
        return base64.b64encode(signature)
    
    
    if __name__ == '__main__':
        data = rsa_sign(origin_data.encode())
        print(data)
    
  • 验签

原文地址:https://www.cnblogs.com/wuxiaoshi/p/14841737.html