本人菜鸟一枚,今天做模拟登录遇到了一个前端加密后端解密的问题,自己根据谷歌搜索出来的代码片段倒腾了一个上午也没搞出来,所以这只能厚着脸皮来这里问大佬们了,下面这个 JavaScript 编码函数编码后的字符串,在后端如何用 php 解码出来提交的字符串。
如果问题太低端,望大佬们别怼我,真心求助,求大佬们不吝赐教!
function Ye() {
return 256 * Math.random() | 0
}
var rn = [3, 7];
function on(e, t) {
void 0 === t && (t = Ye);
var n = t() % 4,
r = function(e) {
if ("function" == typeof TextEncoder){
return (new TextEncoder).encode(e);
}
for (var t = unescape(encodeURI(e)), n = new Uint8Array(t.length), r = 0; r < t.length; ++r)
n[r] = t.charCodeAt(r);
return n
}(JSON.stringify(e));
console.log("17",r);
var i = 1 + rn.length + 1 + n + 7 + r.length;
console.log("19",t.length,rn.length,n,r.length,i);
var o = new ArrayBuffer(i);
console.log("21",o)
var a = new Uint8Array(o)
, u = 0
, s = t();
a[u++] = s;
for (var c = 0, l = rn; c < l.length; c++) {
var d = l[c];
a[u++] = s + d
}
a[u++] = s + n;
for (var f = 0; f < n; ++f)
a[u++] = t();
var v = new Uint8Array(7);
for (f = 0; f < 7; ++f)
v[f] = t(),
a[u++] = v[f];
for (f = 0; f < r.length; ++f)
a[u++] = r[f] ^ v[f % 7];
console.log("39",o);
return o
}
on('{"name":"abcde","password":"15e2b0d3c33891ebb0f1ef609ec419420c20e320ce94c65fbc8c3312448eb225"}')
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.