python实现RSA加密的sign签名

代码实现如下:

import time
from Cryptodome.PublicKey import RSA
from Cryptodome.Signature import pkcs1_15
from Cryptodome.Hash import SHA256
from base64 import b64encode
import uuid
import csv

privatekey = "这里存放研发生成的私钥"
private_key = "-----BEGIN RSA PRIVATE KEY-----\n" + privatekey + "\n-----END RSA PRIVATE KEY-----"

timestamp = str(int(time.time()))  # 生成的时间戳
nonce = uuid.uuid4().hex   # 生成的随机数

# 读取本地的csv文件
with open('D:\Python\person.csv', 'r', encoding='utf-8') as file_obj:
    # 1.创建reader对象
    reader = csv.reader(file_obj)
    # 2.遍历进行读取数据
    for r in reader:
        # 设置为入参
        calltype = r[0]
        versionCode = r[1]

# 字符串拼接
def GetSignData(terminal, versionCode):
    stringA = ""
    stringA = str("callerType=" + terminal + "&nonce=" + nonce + "&timestamp=" + timestamp + "&version=" + versionCode)
    return stringA


# 生成sign
def sign(signData):
    rsa_key = RSA.importKey(private_key)
    signer = pkcs1_15.new(rsa_key)
    digest = SHA256.new(signData.encode('utf8'))
    sign = b64encode(signer.sign(digest)).decode('utf8')
    return sign



#调用GetSignData函数,获取参与签名的参数,返回新的字典数据
signData=GetSignData(calltype, versionCode)
#调用函数,返回需要加密的字符串
#print('拼接的字符串:'+ signData)
#调用函数,返回生辰的sign
print('生成的sign:'+ sign(signData))

执行结果
在这里插入图片描述
过程出现的问题:因为多加了+ ‘\n’,导致生成的sign不对,去掉之后,就对了
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值