从文件读取json数据拼接成待签名字符串,用sha256进行签名,得到签名字符串

如题,贴code

# -*- coding: utf-8 -*-
# version python 3.5

import hashlib
import json
import sys

def loadMessage(file):
    f = open(file)  #设置以utf-8解码模式读取文件,encoding参数必须设置,否则默认以gbk模式读取文件,当文件中包含中文时,会报错
    message = json.load(f)
    # print('message:',message)
    return message

def    requestsign( message,signKey):
    # message1=json.dumps(message,sort_keys=True)
    # message2=json.loads(message1)
    # print(message)
    keyList=sorted(message)
    # print(keyList)
    # print(type(keyList))
    #拼字符串
    tempSign=''
    for key in keyList:
        if((message[key]!=u''and key!='sign')):
            # print("key:", key)
            # print("message2[key]:", message2[key])
            tempSign += key+ '='+ message[key]+ '&'
            # print(tempSign)
    # print(tempSign)
    #去掉最后一个&符号
    temSign1=tempSign[:-1]
    # print("tempSign1",temSign1)
    #拼接商户秘钥
    signs =temSign1+ signKey
    print(signs)
    return signs

#sha256
def sha256Fuction(signString):
    sha256 = hashlib.sha256()
    sha256.update(signString.encode('utf-8'))
    signvalue = sha256.hexdigest()
    # print (u"签名256加密结果:", signvalue )
    print ("签名256加密结果:"+ signvalue )

if __name__ == '__main__':
    if len(sys.argv) == 3:
        file=sys.argv[1]
        signKey=sys.argv[2]
        message = loadMessage(file)
        signString = requestsign(message, signKey)
        sha256Fuction(signString)
    else:
        print ('参数不对')



猜你喜欢

转载自blog.csdn.net/sunny_happy08/article/details/80540724