已经翻译了大部分,在后段落遇到了难题:
function i(e, t) {
var n = new Array(256);
var a = new Array(e.length);
var r, i = "", o, s, c;
for (r = 0; r < 256; r++) {
n[r] = r;
i = (i + n[r] + t.charCodeAt(r % t.length)) % 256;
s = n[r];
n[r] = n[i];
n[i] = s;
}
for (r = 0; r < e.length; r++) {
a[r] = e.charCodeAt(r);
}
for (o = 0; o < a.length; o++) {
r = (r + 1) % 256;
i = (i + n[r]) % 256;
s = n[r];
n[r] = n[i];
n[i] = s;
c = (n[r] + n[i] % 256) % 256; // <-----------------翻译到这了,在这里卡住了,因为js列表索引NaN也有值,在py中我用temp来替代这个值,但是由于n[r] 和 n[i]是否有数,导致这条语句用py怎么也复现不了。
a[o] = String.fromCharCode(a[o] ^ n[c]);
}
return a.join("");
}
var t = i("21\\1²0g611Ü4\u0012\u00057", "请联系 i@ilcl.me"); // <--带入了加密的字符串
console.log(t); //211120161104527
正确结果应该是:211120161104527
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.