V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
niselover
V2EX  ›  JavaScript

[有偿] 翻译一个签名算法

  •  
  •   niselover · 2022-03-08 11:24:11 +08:00 · 2743 次点击
    这是一个创建于 1017 天前的主题,其中的信息可能已经有所发展或是发生改变。

    部分代码:

    getSign: function(t) {
        var n = t.appkey, a = Object.keys(t);
        a.sort();
        var s = a.map(function(r) {
            return r + "=" + t[r];
        }).join("&");
        return s = (s = r(s)) + t.nonce_str + t.timestamp + e[n], s = (s = r(s)).toUpperCase();
    },
    

    wechat: d2FuZ3NhbnhpYQ==

    noe132
        1
    noe132  
       2022-03-08 11:28:03 +08:00
    翻译成啥
    edward1987
        2
    edward1987  
       2022-03-08 11:42:11 +08:00
    逻辑看着挺简单的啊。。 就是把 请求参数 t 拼成 排序后的 query 形式+特定参数,类似微信 token 的加密生成
    niselover
        3
    niselover  
    OP
       2022-03-08 11:51:45 +08:00
    @noe132 #1 给我讲明白就行了
    musi
        4
    musi  
       2022-03-08 11:52:03 +08:00
    代码不全,看着就像是对参数进行了字典序排序然后拼接
    niselover
        5
    niselover  
    OP
       2022-03-08 11:52:28 +08:00
    @edward1987 #2 最后一行加密 我不知道怎么搞
    niselover
        6
    niselover  
    OP
       2022-03-08 11:52:57 +08:00
    @musi #4 有完整代码
    musi
        7
    musi  
       2022-03-08 11:54:47 +08:00
    @niselover #6 有完整代码建议你放到浏览器里面一步步 debug ,这是最容易懂的了
    niselover
        8
    niselover  
    OP
       2022-03-08 11:56:44 +08:00
    @musi #7 不是 web 开发..搞不明白
    lawler
        9
    lawler  
       2022-03-08 12:06:44 +08:00
    眼熟,像某非一线大厂的小程序接口 sgin 。
    musi
        10
    musi  
       2022-03-08 12:09:15 +08:00
    加你了
    liuxu
        11
    liuxu  
       2022-03-08 13:01:29 +08:00
    在爬谁的站,一看就是弄别人的接口搞不定 sign
    sakasaka
        12
    sakasaka  
       2022-03-08 13:45:58 +08:00
    就是普通的加签,具体加密算法在 r()这个函数里,上述只是拼接逻辑。
    HAYWAEL
        13
    HAYWAEL  
       2022-03-08 14:40:28 +08:00
    r() 这个是加密算法。我猜是 MD5 。因为见过不少类似的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1100 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 19:30 · PVG 03:30 · LAX 11:30 · JFK 14:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.