V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Ebola
V2EX  ›  程序员

求解这是何种JS加密办法

  •  
  •   Ebola · 2013-05-19 23:57:22 +08:00 · 3654 次点击
    这是一个创建于 3991 天前的主题,其中的信息可能已经有所发展或是发生改变。
    function(E) {
    eval(function(p, a, c, k, e, d) {
    e = function(c) {
    return c.toString(36)
    };
    if (!''.replace(/^/, String)) {
    while (c--) {
    d[e(c)] = k[c] || e(c)
    }
    k = [function(e) {
    return d[e]
    }];
    e = function() {
    return '\\w+'
    };
    c = 1
    };
    while (c--) {
    if (k[c]) {
    p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c])
    }
    }
    return p
    } ('h(q=="<p r=\\"s\\" t=\\"o/u.n\\">"){a c=$(\'#m\').l();h(!(/[^[0-9]/.z(c))&&c.y==v){a b=j k(3);a d=0;8(1=0;1<3;1++){b[1]=j k(5);8(2=0;2<5;2++){b[1][2]=c.f(d);d++}}a 6="";8(1=4;1>=0;1--){8(2=0;2<3;2++){6=6+b[2][1]}}a e="";8(1=0,2=w;1<7;1++,2--){e+=(i(6.f(1),g)+i(6.f(2),g))%g}x=e}}', 36, 36, '|iii|ggg||||result||for||var|mas|num|ind|tim|charAt|10|if|parseInt|new|Array|val|textbox|gif|images|img|E|alt|df|src|loading2|15|13|key|length|test'.split('|'), 0, {}));
    return E === g ? (this[0] ? this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g, "") : null) : this.empty().append(E)
    }
    /* !eval(new String(function(p,a,c,k,e,d);)) */
    第 1 条附言  ·  2013-05-20 02:18:43 +08:00
    closed
    6 条回复    1970-01-01 08:00:00 +08:00
    chemzqm
        1
    chemzqm  
       2013-05-20 00:01:11 +08:00   ❤️ 1
    这么变态,可能是google的closure-compiler干的
    Ebola
        2
    Ebola  
    OP
       2013-05-20 00:17:09 +08:00
    @chemzqm 完全不懂JS。。。求大神解答,倒数第三行 key = tim , 我想不通过他这个JS,用PHP能否算出这个key?

    if (E == "<img alt=\"df\" src=\"images/loading2.gif\">") {
    var num = $('#textbox').val();
    if (! (/[^[0-9]/.test(num)) && num.length == 15) {
    var mas = new Array(3);
    var ind = 0;
    for (iii = 0; iii < 3; iii++) {
    mas[iii] = new Array(5);
    for (ggg = 0; ggg < 5; ggg++) {
    mas[iii][ggg] = num.charAt(ind);
    ind++
    }
    }
    var result = "";
    for (iii = 4; iii >= 0; iii--) {
    for (ggg = 0; ggg < 3; ggg++) {
    result = result + mas[ggg][iii]
    }
    }
    var tim = "";
    for (iii = 0, ggg = 13; iii < 7; iii++, ggg--) {
    tim += (parseInt(result.charAt(iii), 10) + parseInt(result.charAt(ggg), 10)) % 10
    }
    key = tim
    }
    }
    chemzqm
        3
    chemzqm  
       2013-05-20 00:25:31 +08:00   ❤️ 1
    @Ebola 你能看懂就能做到,我是看不懂,或者可以做点修改用node跑
    Ebola
        4
    Ebola  
    OP
       2013-05-20 00:26:11 +08:00
    @chemzqm 已经妥妥的了,我直接把它复制保存为JS,去掉了第一个E是否等于的验证,下面的可以运行了。 哈哈
    catfan
        5
    catfan  
       2013-05-20 03:44:07 +08:00   ❤️ 1
    这是Packer压缩出来的JavaScript代码 http://dean.edwards.name/packer/
    Ebola
        6
    Ebola  
    OP
       2013-05-20 12:53:03 +08:00
    @catfan 貌似只有加密
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5065 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 09:43 · PVG 17:43 · LAX 02:43 · JFK 05:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.