文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

php、go、python后端接口签名实现

2023-09-01 20:44

关注

php实现

function makeSignature($args, $key){    if(isset($args['sign'])) {        $oldSign = $args['sign'];        unset($args['sign']);    } else {        $oldSign = '';    }    ksort($args);    $requestString = '';    foreach($args as $k => $v) {        $requestString .= $k . '=' . urlencode($v);    }    $newSign = hash_hmac("sha256",strtolower($requestString) , $key);    return $newSign;}

golang 实现

package mainimport (    "crypto/sha1"    "crypto/hmac""crypto/sha256"    "encoding/hex"    "fmt"    "sort"    "strconv"    "time")func makeSign(params, key) {    var dataParams string    //ksort    var keys []string    for k := range params {        keys = append(keys, k)    }    sort.Strings(keys)    //拼接    for _, k := range keys {        fmt.Println("key:", k, "Value:", params[k])        dataParams = dataParams + k + "=" + params[k] + "&"    }    fmt.Println(dataParams)    ff := dataParams[0 : len(dataParams)-1]    fmt.Println("去掉最后一个&:", ff)    //对字符串进行hmac哈希    h := hmac.New(sha256.New, key)    h.Write([]byte(dataParams))    bs := h.Sum(nil)    sign := hex.EncodeToString(bs)    //拼接请求参数    dataPost := dataParams + "&sign" + "=" + sign    return dataPost}

python实现

from hashlib import sha256import urllibimport hmacdef urlencode(val):    return urllib.parse.quote(val, safe='/', encoding=None, errors=None)def ksort(d):    '''遍历字典转成list'''    return [(k,urlencode(d[k])) for k in sorted(d.keys())]def makeSign(params, key):    dd = ksort(params)    data = "&".join(["=".join(i) for i in dd if i[1] and i[0] != "sign"])    return hmac.new(key.encode('utf-8'), data.encode('utf-8'), digestmod=sha256).hexdigest().upper()

来源地址:https://blog.csdn.net/yangyin007/article/details/126875510

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯