吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 378|回复: 3
收起左侧

[求助] 各位大神,这是怎么生成的sign呢?

[复制链接]
xuexue321 发表于 2024-4-7 18:07
var e = require("../@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
    value: !0
}), exports.debounce = f, exports.request = a, exports.uploadFile = i;
var n = e(require("crypto-js")), t = require("./sha256"), o = require("./config"), r = 1;
function a(e, i, u) {
    var f = e, d = i, l = u;
    return new Promise(function(c, g) {
        u || (u = {});
        var p = JSON.parse(JSON.stringify(u));
        p.organid = o.ORGANID, p.tokenType = 1, p.stadiumid = p.stadiumid || "" == p.stadiumid ? p.stadiumid : wx.getStorageSync("stadiumid");
        var y = {
            sign: function(e, r) {
                var a = [], i = 0;
                for (var s in e) a[i] = s, i++;
                var u = a.sort(), f = "";
                for (var d in u) u.hasOwnProperty(d) && -1 === u[d].indexOf("action") && -1 === u[d].indexOf("_noencry") && -1 === u[d].indexOf("_nosign") && (f += u[d] + "=" + e[u[d]] + "&");
                f = r.indexOf("noToken") < 0 ? f + "token=" + wx.getStorageSync("token") + "&appkey=" + o.appkey : f + "appkey=" + o.appkey;
                return f = (0, t.SHA256)(f).toUpperCase(), f = n.default.MD5(f).toString().toUpperCase();
            }(function(e) {
                for (var n in e) "token" !== n && "action" !== n && -1 === n.indexOf("_nosign") && -1 === n.indexOf("_noencry") && ("string" == typeof e[n] || "number" == typeof e[n] || "boolean" == typeof e[n] ? e[n] = s(e[n]) : e[n] = s(JSON.stringify(e[n])));
                return e;
            }(p), i),
            token: wx.getStorageSync("token"),
            "Content-Type": "application/x-www-form-urlencoded"
        };
        wx.request({
            url: o.baseUrl + i,
            method: e,
            header: y,
            data: p,
            success: function(e) {
                if (wx.hideLoading(), e.data.result && "false" !== e.data.result) c(e.data); else if (3 !== e.data.code && 2 !== e.data.code) if (4 === e.data.code) if (r < 3) {
                    r++;
                    var n = wx.getStorageSync("loginInfo"), t = {};
                    t.tokens = n.token, t.userid = n.userid, t.refresh_token = n.refresh_token, t.useriv = o.ivkey,
                    t.mq = !0, t.usermy = o.mftkey, t.userkey = n.username + "shanxi" + n.refresh_token + "taiyuan" + n.random,
                    wx.$api.refreshTokens(t).then(function(e) {
                        r = 1;
                        var n = wx.getStorageSync("loginInfo");
                        n.refresh_token = e.refresh_token, n.token = e.token, wx.setStorageSync("loginInfo", n),
                        wx.setStorageSync("token", e.token), a(f, d, l).then(function(e) {
                            c(e);
                        }).catch(function(e) {
                            wx.removeStorageSync("token"), wx.removeStorageSync("loginInfo"), wx.navigateTo({
                                url: "/pages/login/login"
                            });
                        });
                    }).catch(function(e) {});
                } else wx.removeStorageSync("token"), wx.removeStorageSync("loginInfo"), wx.navigateTo({
                    url: "/pages/login/login"
                }); else wx.showToast({
                    title: e.data.message,
                    icon: "none",
                    duration: 2e3
                }), g(e); else wx.navigateTo({
                    url: "/pages/login/login"
                });
            },
            fail: function(e) {
                wx.hideLoading(), g(e), wx.showToast({
                    title: "服务器错误",
                    icon: "none",
                    duration: 2e3
                });
            }
        });
    });
}
function i(e, n, t) {
    return console.log(n, t, "????????"), new Promise(function(e, r) {
        wx.uploadFile({
            url: o.baseUrl + n,
            header: {
                "Content-Type": "multipart/form-data"
            },
            name: "file",
            filePath: t,
            success: function(n) {
                console.log(n, "result");
                var t = JSON.parse(n.data);
                -1 === t.status ? r(t) : e(t);
            },
            fail: function(e) {
                console.log(e, "error");
                var n = JSON.parse(e.data);
                r(n);
            }
        });
    });
}
function s(e) {
    var t = n.default.enc.Utf8.parse(o.mftkey), r = n.default.enc.Utf8.parse(e);
    return n.default.AES.encrypt(r, t, u).toString();
}
var u = {
    iv: n.default.enc.Utf8.parse(o.ivkey),
    mode: n.default.mode.CBC,
    padding: n.default.pad.Pkcs7
};
function f(e) {
    var n, t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 300;
    return function(o) {
        var r = this;
        clearTimeout(n), n = setTimeout(function() {
            e.call(r, o);
        }, t);
    };
}
module.exports = {
    request: a,
    uploadFile: i,
    debounce: f
};
各位大神,这里面有段生成sign的代码,是怎么生成的sign呢?比如说是使用哪些数据来产生的sign?可以帮忙编写个脚本把我的特定数据生成sign吗?

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

J大神 发表于 2024-4-7 19:02
AES 哥 你去b站找找志远三期 你就会了
 楼主| xuexue321 发表于 2024-4-7 23:02
我现在知道的是url上的参数是aes加密的 ,sign的数据先sha256再转大写,再md5再转大写?我想知道sign是由哪些数据生成的,哪位大佬可以帮忙写出生成sign的代码吗
夜泉 发表于 2024-4-8 00:09
xuexue321 发表于 2024-4-7 23:02
我现在知道的是url上的参数是aes加密的 ,sign的数据先sha256再转大写,再md5再转大写?我想知道sign是由哪些 ...

要想扣代码,先把javascript学会,学会了后再学vue、es6,差不多就能扣了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-2 09:16

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表