Skip to content

将base64位编码之后,可以讲有道云翻译的示例

讲md5之后,可以讲微信公众号平台登录的示例

js混淆和反混淆

比如对如下js函数进行混淆处理:

javascript
function f() {
	console.log(123)
}

f()

经过混淆后,你可以通过在线混淆工具来测试http://www.esjson.com/jsGarbleEncrypt.html

javascript
// 没格式化的混淆后的js代码
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):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}('3 2() {	1.4(0)}2()',62,5,'123|console|f|function|log'.split('|'),0,{}))


// 格式化一下你能看的懂吗
eval(function (p, a, c, k, e, d) {
    e = function (c) {
        return (c < a ? '' : e(parseInt(c / a))) + ((c = c % a) > 35 ? String.fromCharCode(c + 29) : 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
}('3 2() {	1.4(0)}2()', 62, 5, '123|console|f|function|log'.split('|'), 0, {}))

这么一混淆,很难分析出来,所以有些网站通常会对js代码进行混淆,提高爬虫爬取难度。