以前的可能错了,文件里也有MD5的片段,感觉又像是MD5加密的,我也说不清了,反正实例要解码的在最后一段,是中文,希望大家测试成功了在发好不好
function r(t, e, i, n, r, s, a) {
return ((t = t + (i ^ (e | ~n)) + r + a) << s | t >>> 32 - s) + e
}
for (var s = g, a = (h = s.lib)
.WordArray, o = h.Hasher, h = s.algo, u = [], c = 0; 64 > c; c++) u[c] = 4294967296 * t.abs(t.sin(c + 1)) | 0;
h = h.MD5 = o.extend({
_doReset: function() {
this._hash = new a.init([1732584193, 4023233417, 2562383102, 271733878])
},
_doProcessBlock: function(t, s) {
for (var a = 0; 16 > a; a++) {
var o = t[h = s + a];
t[h] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8)
}
a = this._hash.words;
var h = t[s + 0],
c = (o = t[s + 1], t[s + 2]),
l = t[s + 3],
f = t[s + 4],
d = t[s + 5],
g = t[s + 6],
p = t[s + 7],
y = t[s + 8],
v = t[s + 9],
S = t[s + 10],
m = t[s + 11],
A = t[s + 12],
x = t[s + 13],
b = t[s + 14],
F = t[s + 15],
E = e(E = a[0], H = a[1], P = a[2], w = a[3], h, 7, u[0]),
w = e(w, E, H, P, o, 12, u[1]),
P = e(P, w, E, H, c, 17, u[2]),
H = e(H, P, w, E, l, 22, u[3]);
E = e(E, H, P, w, f, 7, u[4]), w = e(w, E, H, P, d, 12, u[5]), P = e(P, w, E, H, g, 17, u[6]), H = e(H, P, w, E, p, 22, u[7]), E = e(E, H, P, w, y, 7, u[8]), w = e(w, E, H, P, v, 12, u[9]), P = e(P, w, E, H, S, 17, u[10]), H = e(H, P, w, E, m, 22, u[11]), E = e(E, H, P, w, A, 7, u[12]), w = e(w, E, H, P, x, 12, u[13]), P = e(P, w, E, H, b, 17, u[14]), E = i(E, H = e(H, P, w, E, F, 22, u[15]), P, w, o, 5, u[16]), w = i(w, E, H, P, g, 9, u[17]), P = i(P, w, E, H, m, 14, u[18]), H = i(H, P, w, E, h, 20, u[19]), E = i(E, H, P, w, d, 5, u[20]), w = i(w, E, H, P, S, 9, u[21]), P = i(P, w, E, H, F, 14, u[22]), H = i(H, P, w, E, f, 20, u[23]), E = i(E, H, P, w, v, 5, u[24]), w = i(w, E, H, P, b, 9, u[25]), P = i(P, w, E, H, l, 14, u[26]), H = i(H, P, w, E, y, 20, u[27]), E = i(E, H, P, w, x, 5, u[28]), w = i(w, E, H, P, c, 9, u[29]), P = i(P, w, E, H, p, 14, u[30]), E = n(E, H = i(H, P, w, E, A, 20, u[31]), P, w, d, 4, u[32]), w = n(w, E, H, P, y, 11, u[33]), P = n(P, w, E, H, m, 16, u[34]), H = n(H, P, w, E, b, 23, u[35]), E = n(E, H, P, w, o, 4, u[36]), w = n(w, E, H, P, f, 11, u[37]), P = n(P, w, E, H, p, 16, u[38]), H = n(H, P, w, E, S, 23, u[39]), E = n(E, H, P, w, x, 4, u[40]), w = n(w, E, H, P, h, 11, u[41]), P = n(P, w, E, H, l, 16, u[42]), H = n(H, P, w, E, g, 23, u[43]), E = n(E, H, P, w, v, 4, u[44]), w = n(w, E, H, P, A, 11, u[45]), P = n(P, w, E, H, F, 16, u[46]), E = r(E, H = n(H, P, w, E, c, 23, u[47]), P, w, h, 6, u[48]), w = r(w, E, H, P, p, 10, u[49]), P = r(P, w, E, H, b, 15, u[50]), H = r(H, P, w, E, d, 21, u[51]), E = r(E, H, P, w, A, 6, u[52]), w = r(w, E, H, P, l, 10, u[53]), P = r(P, w, E, H, S, 15, u[54]), H = r(H, P, w, E, o, 21, u[55]), E = r(E, H, P, w, y, 6, u[56]), w = r(w, E, H, P, F, 10, u[57]), P = r(P, w, E, H, g, 15, u[58]), H = r(H, P, w, E, x, 21, u[59]), E = r(E, H, P, w, f, 6, u[60]), w = r(w, E, H, P, m, 10, u[61]), P = r(P, w, E, H, c, 15, u[62]), H = r(H, P, w, E, v, 21, u[63]);
a[0] = a[0] + E | 0, a[1] = a[1] + H | 0, a[2] = a[2] + P | 0, a[3] = a[3] + w | 0
},
_doFinalize: function() {
var e = this._data,
i = e.words,
n = 8 * this._nDataBytes,
r = 8 * e.sigBytes;
i[r >>> 5] |= 128 << 24 - r % 32;
var s = t.floor(n / 4294967296);
for (i[15 + (r + 64 >>> 9 << 4)] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), i[14 + (r + 64 >>> 9 << 4)] = 16711935 & (n << 8 | n >>> 24) | 4278255360 & (n << 24 | n >>> 8), e.sigBytes = 4 * (i.length + 1), this._process(), i = (e = this._hash)
.words, n = 0; 4 > n; n++) r = i[n], i[n] = 16711935 & (r << 8 | r >>> 24) | 4278255360 & (r << 24 | r >>> 8);
return e
},
clone: function() {
var t = o.clone.call(this);
return t._hash = this._hash.clone(), t
}
}), s.MD5 = o._createHelper(h), s.HmacMD5 = o._createHmacHelper(h)
一个加密的JS文件 DECODE函数是,我一共看到三段,我感觉第三段应该是解码的函数
var n = r.Base64 = {
decode: function(t) {
var e;
if (void 0 === i) {
for (i = Object.create(null), e = 0; e < 64; ++e) i["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e)] = e;
for (i["-"] = 62, i._ = 63, e = 0; e < "= \f\n\r\t \u2028\u2029".length; ++e) i["= \f\n\r\t \u2028\u2029".charAt(e)] = -1
}
var r = [],
n = 0,
s = 0;
for (e = 0; e < t.length; ++e) {
var o = t.charAt(e);
if ("=" == o) break;
if ( - 1 != (o = i[o])) {
if (void 0 === o) throw new Error("Illegal character at offset " + e);
n |= o,
++s >= 4 ? (r[r.length] = n >> 16, r[r.length] = n >> 8 & 255, r[r.length] = 255 & n, n = 0, s = 0) : n <<= 6
}
}
还有一小段
decode: function(t) {
var e;
if (void 0 === i) {
var r = "0123456789ABCDEF";
for (i = {},
e = 0; e < 16; ++e) i[r.charAt(e)] = e;
for (r = r.toLowerCase(), e = 10; e < 16; ++e) i[r.charAt(e)] = e;
for (e = 0; e < " \f\n\r\t \u2028\u2029".length; ++e) i[" \f\n\r\t \u2028\u2029".charAt(e)] = -1
}
var n = [],
s = 0,
o = 0;
for (e = 0; e < t.length; ++e) {
var h = t.charAt(e);
if ("=" == h) break;
if ( - 1 != (h = i[h])) {
if (void 0 === h) throw new Error("Illegal character at offset " + e);
s |= h,
++o >= 2 ? (n[n.length] = s, s = 0, o = 0) : s <<= 4
}
}
这是第三段
function() {
var t = g,
e = t.lib.WordArray;
t.enc.Base64 = {
stringify: function(t) {
var e = t.words,
i = t.sigBytes,
n = this._map;
t.clamp(), t = [];
for (var r = 0; r < i; r += 3)
for (var s = (e[r >>> 2] >>> 24 - r % 4 * 8 & 255) << 16 | (e[r + 1 >>> 2] >>> 24 - (r + 1) % 4 * 8 & 255) << 8 | e[r + 2 >>> 2] >>> 24 - (r + 2) % 4 * 8 & 255, a = 0; 4 > a && r + .75 * a < i; a++) t.push(n.charAt(s >>> 6 * (3 - a) & 63));
if (e = n.charAt(64))
for (; t.length % 4;) t.push(e);
return t.join("")
},
parse: function(t) {
var i = t.length,
n = this._map;
(r = n.charAt(64)) && (-1 != (r = t.indexOf(r)) && (i = r));
for (var r = [], s = 0, a = 0; a < i; a++)
if (a % 4) {
var o = n.indexOf(t.charAt(a - 1)) << a % 4 * 2,
h = n.indexOf(t.charAt(a)) >>> 6 - a % 4 * 2;
r[s >>> 2] |= (o | h) << 24 - s % 4 * 8, s++
} return e.create(r, s)
},
_map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
}
}(),
希望有人帮忙破解一下,写成完整的JS函数,以下是举例需要破解额内容,请用下面编码后的内容测试一下
{"msg":"success","code":200,"data":"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"}