python3 签名DEMO如下:
import sys, os, base64, datetime, hashlib, hmac
import urllib.request
# 使用时把sign方法拷贝到代码工程内即可
def sign(params, secret_key):
str_encode = ''
param_keys = sorted(params.keys())
for key in param_keys:
str_encode += urllib.request.quote(key, '~') + '=' + urllib.request.quote(str(params[key]), '~') + '&'
return hmac.new(bytes(secret_key, 'utf-8'), bytes(str_encode[:-1], 'utf-8'), hashlib.sha256).hexdigest()
arr = {
'Accesskey' : 'AKLTXQVF0pOmS6aahIrD5r0B3Q',
'Service' : 'iam',
'Action' : 'CreateUser',
'Version' : '2015-11-01',
'Timestamp' : '2021-08-12T02:47:36Z', # 使用如下的方式产生UTC格式的时间,datetime.datetime.utcnow()
'SignatureVersion' : '1.0',
'SignatureMethod' : 'HMAC-SHA256',
'UserName' : 'Ttest',
'RealName' : '周四测试',
'Email' : '[email protected]',
'Remark' : '~ce shi*%#|+'
}
sk = 'OMovU5PTLh6y9E9Ioe3K411jt99VqyQSBXgAcDYlo49R3lvUIzb6e/efZCFDmtFlzw=='
signature = sign(arr, sk)
print(signature) #结果:fc9088ab845949dac4040be9b7ce7859068b5c21d4c400fec8ee0cefb777f659
文档内容是否对您有帮助?
评价建议不能为空
非常感谢您的反馈,我们会继续努力做到更好!