首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么鉴权一直都是失败的?

为什么鉴权一直都是失败的?

提问于 2018-08-27 11:40:59
回答 3关注 0查看 4.1K

{'Response': {'Error': {'Code': 'AuthFailure.SignatureFailure', 'Message': 'The provided credentials could not be validated. Please check your signature is correct.'}, 'RequestId': '70bab6f9-0544-4530-93f0-148e009168ea'}}

下面是我简单的测试代码,一直都是失败

import time

import base64

import hmac

from hashlib import sha1

from urllib.parse import quote

import requests

SecretId = "AKIDmRuAD7yE2neQ2SSfS5VkneLn33nRse3F"

SecretKey = "********"

send_data = {'Action' : 'DescribeInstances',

'InstanceIds.0' : 'ins-ni190jc6',

'Limit' : 20,

'Nonce' : 11886,

'Offset' : 0,

'Region' : 'ap-hongkong',

'SecretId' : SecretId,

'Timestamp' : int(time.time()),

'Version': '2017-03-12'}

def signature():

sort_send_data = dict(sorted(zip(send_data.keys(), send_data.values())))

srcStr = 'GETcvm.tencentcloudapi.com/?' + '&'.join([k + '=' + str(v) for k, v in sort_send_data.items()])

hmac_str = hmac.new(SecretKey.encode("utf-8"), srcStr.encode("utf-8"), sha1).digest()

sign_str = base64.b64encode(hmac_str).decode("utf-8")

sign_str_splice = quote(sign_str, safe='')

sort_send_data["Signature"] = sign_str_splice

post_data = dict(sorted(zip(sort_send_data.keys(), sort_send_data.values())))

return post_data

if __name__ == '__main__':

url = "https://cvm.tencentcloudapi.com"

post_data = signature()

print(post_data)

resp = requests.get(url, params=post_data)

print(resp.json())

print(resp.url)

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档