开发者社区 > 云原生 > Serverless > 正文

函数计算中,有人能帮我看下这个问题吗? 签名怎么都搞不对了?

函数计算中,
有人能帮我看下这个问题吗? 签名怎么都搞不对了
myHeaders.append(""authorization"", getSignature('xxxxxxx', 'yyyyy', 'GET','/lf/sendsms', myHeaders, ''));

展开
收起
多麻辣哦 2024-01-03 17:06:53 35 0
1 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    根据您提供的代码片段,我猜测您可能在使用一个函数来计算签名。以下是一个常见的签名计算方法的示例:

    import hashlib
    import hmac
    import base64
    
    def getSignature(api_key, secret_key, method, path, headers, body):
        # 将请求参数按照字典序排序
        sorted_params = sorted(headers.items(), key=lambda x: x[0].lower())
    
        # 构建待签名的字符串
        string_to_sign = method + "\n" + path + "\n" + "".join([f"{k}:{v}\n" for k, v in sorted_params])
    
        # 使用 HMAC-SHA256 算法计算签名
        signature = hmac.new(secret_key.encode(), string_to_sign.encode(), hashlib.sha256).digest()
    
        # 对签名进行 Base64 编码
        signature_base64 = base64.b64encode(signature).decode()
    
        return signature_base64
    
    # 示例用法
    api_key = 'xxxxxxx'
    secret_key = 'yyyyy'
    method = 'GET'
    path = '/lf/sendsms'
    myHeaders = {
        'Content-Type': 'application/json',
        'Accept': 'application/json',
        'User-Agent': 'MyApp/1.0',
    }
    body = ''
    
    signature = getSignature(api_key, secret_key, method, path, myHeaders, body)
    print("Signature:", signature)
    
    2024-01-03 18:16:34
    赞同 展开评论 打赏
问答分类:
问答地址:
相关产品:

快速交付实现商业价值。

相关产品

  • 函数计算
  • 相关电子书

    更多
    All in Serverless 阿里云核心产品全面升级 立即下载
    AIGC 浪潮之上,森马的 Serverless 实践之旅 立即下载
    极氪大数据 Serverless 应用实践 立即下载