go语言调用阿里云OpenApi的签名加密问题?

jiangyd · 2017-05-04 02:49:31 · 3770 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2017-05-04 02:49:31 的主题,其中的信息可能已经有所发展或是发生改变。

https://help.aliyun.com/document_detail/25492.html?spm=5176.doc25490.2.2.Uwn9UA

我按照url的文档,对StringToSign进行hmac sha1进行加密,然后base64,得到的结果与文档例子的结果不一致 v2-c7765a6260196517ed843e4f01d9e381_r.png

我的代码:

package main

import "fmt"

import "crypto/sha1"

import "crypto/hmac"

import b64 "encoding/base64"

func main() {

    key := []byte("testsecret&")
    mac := hmac.New(sha1.New, key)
    mac.Write([]byte("GET&%2F&AccessKeyId%3Dtestid&Action%3DDescribeRegions&Format%3DXML&SignatureMethod%3DHMAC-SHA1&SignatureNonce%3D3ee8c1b8-83d3-44af-a94f-4e0ad82fd6cf&SignatureVersion%3D1.0&TimeStamp%3D2016-02-23T12%253A46%253A24Z&Version%3D2014-05-26"))
    s := b64.StdEncoding.EncodeToString(mac.Sum(nil))
    fmt.Println(s)
}

输出的结果:LZ5DVzNj95387UDL70u7+18AwWY= 与官网文档结果不一致,搞了一天了,不知道啥原因!


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3770 次点击  
加入收藏 微博
4 回复  |  直到 2017-07-31 01:32:54
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传