开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 442|回复: 11
收起左侧

[完成] 求雪王免单md5__1722的加密算法

 关闭 [复制链接]
结帖率:50% (1/2)
发表于 2025-5-17 06:53:56 | 显示全部楼层 |阅读模式   福建省泉州市
10精币
求雪王奶茶最新口令抢免单的动态URL参数加密算法js
反编译了小程序,仅找到sign的值
感觉md5__1722是通过参数加密的,不太了解小程序跳来跳去看不明白

下面是我抓的三条:
https://activity.mxbc.net/skc/api/v1/secretword/confirm?md5__1722=Yq%2BOAKY5ejxG2xBTbDyDAE4IxGqwEa1BmerYD
请求体:{"marketingId":"1923016284317048833","round":"15:00","secretword":"蓝莓果粒茶,爆款回归!","sign":"c7c056450a015327d047394a7a578b2a","s":2,"stamp":1747378893833}

https://activity.mxbc.net/skc/api/v1/secretword/confirm?md5__1722=n4Ux0D2GG%3DdQwxYqGNuerDniCeDtzDgBBgDWupD
请求体:{"marketingId":"1923016284317048833","round":"17:00","secretword":"蓝莓果粒茶,爆款回归!","sign":"b305cd0031a4e5f5eae4f91c57811fd2","s":2,"stamp":1747386637508}

https://activity.mxbc.net/skc/api/v1/secretword/confirm?md5__1722=n4%2BxuDRDyD0DBGDnexcDBwOofARBDjreeY5Pi%3Dx
请求体:{"marketingId":"1923016284317048833","round":"17:00","secretword":"蓝莓果粒茶,爆款回归!","sign":"6de553b643b06ef7f95eee8b75bed4f1","s":2,"stamp":1747386666975}



反编译我也发出来,大佬帮我找找


补充内容 (2025-5-18 02:36):
雪王活动程序源码:https://fiyx.lanzoum.com/iamYl2wiv9pi

我不太懂小程序,跳来跳去有些乱,求大佬分析md5__1722的加密代码

补充内容 (2025-5-18 02:38):
我没权限打开 人杰的贴,新人不太懂怎么升,也没有开通渠道,求大佬帮我概括或转一下感谢..

最佳答案

查看完整内容

[e=0]function Compress(data, level) { const mapChars = "DGi0YA7BemWnQjCl4+bR3f8SKIF9tUz/xhr2oEOgPpac=61ZqwTudLkM5vHyNXsVJ"; if (data === null) return ""; let dictionary = {}, newSequence = {}, currentSequence = "", dictSize = 2, bitsUsed = 3, codeWidth = 2, output = [], ...
结帖率:100% (8/8)

签到天数: 1 天

发表于 2025-5-17 06:53:57 | 显示全部楼层   湖南省益阳市
  
function Compress (data, level) {
const mapChars = "DGi0YA7BemWnQjCl4+bR3f8SKIF9tUz/xhr2oEOgPpac=61ZqwTudLkM5vHyNXsVJ";

if (data === null) return "";

let dictionary = {},
newSequence = {},
currentSequence = "",
dictSize = 2,
bitsUsed = 3,
codeWidth = 2,
output = [],
bitBuffer = 0,
bitCount = 0;

const pushBits = (charCode, length) => {
for (let j = 0; j < length; j++) {
bitBuffer = (bitBuffer << 1) | (1 & charCode);
if (bitCount === level - 1) {
output.push (mapChars.charAt (bitBuffer));
bitBuffer = 0;
bitCount = 0;
} else {
bitCount++;
}
charCode >>= 1;
}
};

for (let i = 0; i < data.length; i++) {
const currentChar = data.charAt (i);
if (!dictionary.hasOwnProperty (currentChar)) {
dictionary[currentChar] = bitsUsed++;
newSequence[currentChar] = true;
}
const combined = currentSequence + currentChar;
if (dictionary.hasOwnProperty (combined)) {
currentSequence = combined;
} else {
if (newSequence.hasOwnProperty (currentSequence)) {
if (currentSequence.charCodeAt (0) < 256) {
pushBits (0, codeWidth);
pushBits (currentSequence.charCodeAt (0), 8);
} else {
pushBits (1, codeWidth);
pushBits (currentSequence.charCodeAt (0), 16);
}
dictSize--;
if (dictSize === 0) {
dictSize = 1 << codeWidth++;
}
delete newSequence[currentSequence];
} else {
pushBits (dictionary[currentSequence], codeWidth);
}
dictSize--;
if (dictSize === 0) {
dictSize = 1 << codeWidth++;
}
dictionary[combined] = bitsUsed++;
currentSequence = currentChar;
}
}

if (currentSequence !== "") {
if (newSequence.hasOwnProperty (currentSequence)) {
if (currentSequence.charCodeAt (0) < 256) {
pushBits (0, codeWidth);
pushBits (currentSequence.charCodeAt (0), 8);
} else {
pushBits (1, codeWidth);
pushBits (currentSequence.charCodeAt (0), 16);
}
dictSize--;
if (dictSize === 0) {
dictSize = 1 << codeWidth++;
}
delete newSequence[currentSequence];
} else {
pushBits (dictionary[currentSequence], codeWidth);
}
dictSize--;
if (dictSize === 0) {
dictSize = 1 << codeWidth++;
}
}

pushBits (2, codeWidth);
while (true) {
bitBuffer <<= 1;
if (bitCount === level - 1) {
output.push (mapChars.charAt (bitBuffer));
break;
}
bitCount++;
}

return output.join ("");
}

function get_sig (data) {
data = encodeURIComponent (data);
for (var chars = 0, i = 0; i < data.length; i++) {
chars = (chars << 7) - chars + 398 + data.charCodeAt (i);
chars |= 0;
}
return chars;
}
function get_ua (data, noPad) {
if (null == data) {
return "";
}
var res = Compress (data, 6);

if (noPad) {
return res;
}
switch (res.length % 4) {
default:
case 0:
return res;
case 1:
return res + "===";
case 2:
return res + "==";
case 3:
return res + "=";
}
}
function parseUrl (url) {
const urlPattern = /^ (https?:\/\/)? ([^\/? #] +) ([^? #] *) (\?[^ #] *)? ( # .*)?$/;
const matches = url.match (urlPattern);

if (!matches) {
throw new Error ( ' Invalid URL');
}

const searchParams = {};
if (matches[4]) {
matches[4].substring (1).split ( ' &').forEach(param => {
const [key, value] = param.split ( ' =');
searchParams[key] = value;
});
}
matches[1] = matches[1].replace ( ' //', '');
return {
protocol: matches[1] || ' ',
host: matches[2] || ' ',
pathname: matches[3] || ' ',
search: matches[4] || ' ',
searchParams: searchParams,
hash: matches[5] || ' ',
toString: function () {
return `${this.protocol}//${this.host}${this.pathname}${this.search}${this.hash}`;
}
};
}

function get_cdn_seaech (url, Data) {
let Obj = parseUrl (url);

let search = ' ';
if (Obj.search) {
let queryData = Obj.search.replace ("?", "").split ("&");
search =
queryData
.filter ( (v) => {
return !v.startsWith ("refer__1972");
})
.join ("&") || "";
if (Obj.search !== "") Obj.search = "?" + search;
}
let signText = Obj.toString ();

Data && (signText += JSON.stringify (Data));
signText = get_sig (signText) + "|0|" + new Date ().getTime () + "|1";

let keyName = (function () {
const keyNames = ["type__", "refer__", "ipcity__", "md5__", "decode__", "encode__", "time__", "timestamp__", "type__"];
let codes = 0;
for (let i = 0; i < Obj.host.length; i++) {
codes += Obj.host[i].charCodeAt ();
}
return keyNames[codes % keyNames.length] + (codes % 10000);
}) ();
if (!Obj.search) {
Obj.search = `?${keyName}=` + encodeURIComponent (get_ua (signText, !0));
} else {
Obj.search += `&${keyName}=` + get_ua (signText, !0);
}
let result = Obj.toString ();
return result;
}[/i]




某雪、某茶通杀type_xxx,md5_xxx,timestamp_,refer_等等js方法_精易论坛  来自这

评分

参与人数 1荣誉 +1 收起 理由
笨潴 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

结帖率:50% (1/2)
发表于 2025-5-17 07:17:13 高大上手机用户 | 显示全部楼层   辽宁省沈阳市
https://bbs.125.la/forum.php?mod=viewthread&tid=14850149&highlight=%E9%80%9A%E6%9D%80&mobile=2
回复

使用道具 举报

结帖率:100% (9/9)

签到天数: 5 天

发表于 2025-5-17 08:33:56 | 显示全部楼层   福建省厦门市
直接用人杰的不就行了  通杀的 随手点个赞  
回复

使用道具 举报

结帖率:100% (1/1)

签到天数: 4 天

发表于 2025-5-17 13:11:24 | 显示全部楼层   辽宁省大连市

直接用人杰的不就行
回复

使用道具 举报

结帖率:100% (8/8)

签到天数: 1 天

发表于 2025-5-17 13:55:31 | 显示全部楼层   湖南省益阳市
本分人不会用
回复

使用道具 举报

结帖率:100% (8/8)

签到天数: 1 天

发表于 2025-5-17 13:55:47 | 显示全部楼层   湖南省益阳市
回复

使用道具 举报

签到天数: 2 天

发表于 2025-5-17 16:09:33 | 显示全部楼层   河北省唐山市
ok等会试一下
回复

使用道具 举报

结帖率:50% (1/2)
 楼主| 发表于 2025-5-17 21:37:12 | 显示全部楼层   福建省泉州市
liudada666 发表于 2025-5-17 13:11
直接用人杰的不就行

人杰是哪位大佬,在哪找
回复

使用道具 举报

结帖率:50% (1/2)
 楼主| 发表于 2025-5-17 21:38:53 | 显示全部楼层   福建省泉州市
♂隐 发表于 2025-5-17 13:55
https://bbs.125.la/forum.php?mod=viewthread&tid=14850149

权限高于20才能浏览哇,我打不开
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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