中国裁判文书网----最最最详细爬虫----基于各位大佬的帖子---更新一版----步骤不详细?你打死我 本爬虫编写日期:2019-07-30

目录

一、吐槽

 

二、参考

 

三、爬取目标以及爬取思路

1、爬取目标

2、爬取思路

四、破解(重头戏)

1、发现加密参数得过程

1.1 暴力请求 案件详情页

2、破解案件列表页请求参数

2.1 解密number

2.2 解密guid

2.3 解密vl5x(难点)

3、破解案件详情页请求参数

1、破解DocID参数

 

五、详细代码

 

六、总结知识点


一、吐槽

       对,没看错,不干正事先吐槽。由于工作需要,需要对乌龟似的-中国裁判文书网进行爬取。可是,我搜索10次,有9次都是系统繁忙是什么鬼???官网发声,爬虫太多啦、访问的人太多啦。你12306大哥、淘宝大哥、腾讯大哥真是不知道怎么活下来的。ok,吐槽完毕,进入正题。

 

二、参考

        各路大神对于爬取裁判文书网的研究非常多,也发表了很多文章,分享出自己的爬取思路以及js解密的流程。正是对于各位大佬博客的拜读,以及github上各路神仙优质的代码(起初没看懂,git下来好好研究)的拜读,让我认识到,我真的只是一个小朋友啊。希望在今后的爬虫路上能够多多学习大神们的精髓,计划半年从小白把所有爬虫搞定,朝着这个目标前进哇。

        下面附上本人参考的文章,这是我读了很多有关爬取中国文书网 的文章后,选取的适合小白的文章,因为这几篇文章写的步骤比较细致,也比较清晰。

类型 地址 描述 推荐指数
CSDN博客 https://blog.csdn.net/shuishou07/article/details/82414806

优点:破解参数  “vl5x” 描述最为详细易懂

缺点:“vl5x”破解过程还是不够详尽,复现时

         会遇到坑,这块我会详细描述操作步骤

4星
CSDN博客

https://blog.csdn.net/niuming_rui/article/details/82791580

https://blog.csdn.net/niuming_rui/article/details/82786093

优点:破解参数 “guid” 描述相对详细

           破解参数 “vl5x” 描述相对详细

缺点: 破解“guid”流程还是不够详尽,我后

            面也会写上详细的过程

4星
VSDN博客 就是本博客啦,哈哈哈哈

优点:破解每个参数都写的比较详尽

缺点:知识局限性,有些东西,知其然不知

           其所以然,所以没能讲出其原理

5星
github代码 https://github.com/Henryhaohao/Wenshu_Spider

优点:这是位大神,使用scrapy框架写的,

           说实话,对于setting处理等现在还没

           看懂,里面得IP代理是必需用得,这

           位大神处理得特别好,还有通过他得

           代码,学会了如何debug scrapy(我是

           不是很low 哈哈哈哈)。

           后面我还会仔细研究这位得代码得。

缺点:小白还是很难从代码看懂破解过程

           以及现在代码应该是不适用现在得文

          书网了

5星

 

 

 

 

 

 

 

 

 

 

 

 

 

 

       但是我在重现这些文章的步骤时还是出现了不少的问题。因此决定写一篇超级详细的文章。由于 中国裁判文书网 没事就更新,就是为了反爬(感觉他们的工程师不是做网站服务的,而是清一色的反爬虫工程师,越看到后面就越能感受到),所以不能保证这篇文章能过够挺过多久,出现什么问题,可以在下方留言,我还是经常写博客的,第一时间回复大家。

 

三、爬取目标以及爬取思路

1、爬取目标

        此文章以及代码要完成的任务是什么?需求:得到所提供名单中所有企业的裁判文书详情。包含如下关键词。

【业务规则】:

  1. 根据已有目标企业爬取中国裁判文书网相关涉诉信息。

 

【数据项】:

数据项名称

说明

标题

 

涉诉主体

 

法院

 

裁判时间

 

诉讼地位

 

看裁判文书全文

 

【数据来源】:wenshu.court.gov.cn

2、爬取思路

       

先登陆裁判文书网的网站http://wenshu.court.gov.cn,发现搜一个关键词后会得到相关案件的列表(如下图)

中国裁判文书网----最最最详细爬虫----基于各位大佬的帖子---更新一版----步骤不详细?你打死我 本爬虫编写日期:2019-07-30_第1张图片

       

点击其中一个案件会进入到案件详情界面(如下图)

中国裁判文书网----最最最详细爬虫----基于各位大佬的帖子---更新一版----步骤不详细?你打死我 本爬虫编写日期:2019-07-30_第2张图片

        这时候,思路就很明显了:

        1、先拿到 请求案件列表 的url,加入相关参数进行请求。在得到的response中,提取每个案件详情的url

        2、拿到每个案情的url后,就可以加入相关参数,进行请求,得到response后,提取我们要的key-value即可

        3、在案件列表一页中,涉及到第一页,第二页,其实只是请求的url参数有所改变,小问题,后面会说。

 

四、破解(重头戏)

1、发现加密参数得过程

        话不多说,老步骤:找url,然后暴力请求

1.1 暴力请求 案件详情页

1、先找案件详情页的url。怎么找到这么url是个问题。

        我们先进入首页http://wenshu.court.gov.cn,输入关键字 “民事案件“ 点击搜索。然后跳出如下页面。这时打开开发者工具。刷新一下,开发者工具就抓到了所有的包。

中国裁判文书网----最最最详细爬虫----基于各位大佬的帖子---更新一版----步骤不详细?你打死我 本爬虫编写日期:2019-07-30_第3张图片

        这时我们查看此网页的网页源代码,发现只是一些CSS的内容,并没有发现有关 案件内容 的任何信息。说明什么呢?

这肯定是异步加载的,不懂异步加载的去搜ajax了解一下(大概了解即可,花费5分钟就行,不必深入)。

        而开发者工具network下面的 XHR按钮 就是专门抓取异步加载的数据的(如下图)。怎么样,找到根源了吧。

中国裁判文书网----最最最详细爬虫----基于各位大佬的帖子---更新一版----步骤不详细?你打死我 本爬虫编写日期:2019-07-30_第4张图片

       

2、ok,那么我们可以开始暴力请求了,看看能不能直接拿到这个页面呢。先拿listContent的URL和headers和参数。

中国裁判文书网----最最最详细爬虫----基于各位大佬的帖子---更新一版----步骤不详细?你打死我 本爬虫编写日期:2019-07-30_第5张图片          中国裁判文书网----最最最详细爬虫----基于各位大佬的帖子---更新一版----步骤不详细?你打死我 本爬虫编写日期:2019-07-30_第6张图片

中国裁判文书网----最最最详细爬虫----基于各位大佬的帖子---更新一版----步骤不详细?你打死我 本爬虫编写日期:2019-07-30_第7张图片

       

3、请求,我是用的postman。将上面的参数全部填到postman中,如下图.点击send按钮。

中国裁判文书网----最最最详细爬虫----基于各位大佬的帖子---更新一版----步骤不详细?你打死我 本爬虫编写日期:2019-07-30_第8张图片

 

4、ok,拿到结果了,如下。

        只拿到了remind key这么个字符串,什么鬼。是的,是因为我们请求的参数不对,所以服务器不给正确的响应。再看一下请求参数的截图。共7个参数,刷新几次就会发现,其中vl5x、number、guid他们是变化的。所以我们的请求会失败。其中vl5x和guid明显是经过某种运算生成的,因此需要找他们的加密函数了。

中国裁判文书网----最最最详细爬虫----基于各位大佬的帖子---更新一版----步骤不详细?你打死我 本爬虫编写日期:2019-07-30_第9张图片

中国裁判文书网----最最最详细爬虫----基于各位大佬的帖子---更新一版----步骤不详细?你打死我 本爬虫编写日期:2019-07-30_第10张图片

       我们再进到案件详情页,用同样的暴力请求方法测试。同样不成功,发现请求头参数DocID被加密了。

       ok,那我们的思路就是逐个击破呗。花开两朵,各表一枝(郭德纲单口相声学的),先分析如何破解得到案件列表页,再分析如何破解得到案件详情页。

2、破解案件列表页请求参数

        现在可以去找这些参数的位置。有一个快速定位的方法分享给大家。就是crtl+F、ctrl+v,哈哈

2.1 解密number

number这个参数虽然是变化的,但是从其值来看,它并不是加密的,应该是直接返回的符串。但是查看了 案件列表页 的所有response均未找到有返回number的值:wens 的相关内容。

因此,真相只有一个,在首页(http://wenshu.court.gov.cn)输入关键词点击搜索时,并不是直接请求的 案件列表页 ,而是先请求了一个url,在response中得到了number,然后带着number再去请求得到案件列表页。

那么这个url怎么得到呢,在chrome的开发者工具中不能得到,因为请求的中间url就会被舍弃。推荐用抓包工具抓到和number相关的url。

分析见下图:

中国裁判文书网----最最最详细爬虫----基于各位大佬的帖子---更新一版----步骤不详细?你打死我 本爬虫编写日期:2019-07-30_第11张图片

结果:

url为  http://wenshu.court.gov.cn/ValiCode/GetCode

请求方式:post请求

请求头如下

中国裁判文书网----最最最详细爬虫----基于各位大佬的帖子---更新一版----步骤不详细?你打死我 本爬虫编写日期:2019-07-30_第12张图片

form-data如下,当然guid是变化:

 

2.2 解密guid

我们再全局下搜索guid,如下左图,然后会出现所有含guid关键词的文件。

中国裁判文书网----最最最详细爬虫----基于各位大佬的帖子---更新一版----步骤不详细?你打死我 本爬虫编写日期:2019-07-30_第13张图片中国裁判文书网----最最最详细爬虫----基于各位大佬的帖子---更新一版----步骤不详细?你打死我 本爬虫编写日期:2019-07-30_第14张图片

点开这些文件,挨个找,发现在 Lawyee.CPWSW.list.js文件中,找到了guid的生成函数。如下图

中国裁判文书网----最最最详细爬虫----基于各位大佬的帖子---更新一版----步骤不详细?你打死我 本爬虫编写日期:2019-07-30_第15张图片

因此,把他们粘贴到js文件中,然后使用python调用,产生guid码就可以用了。至于如何使用python调用js,自行百度学习。比较简单。

下面附上get_guid()函数的js代码:

function get_guid() {
    return createGuid() + createGuid() + "-" + createGuid() + "-" + createGuid() + createGuid() + "-" + createGuid() + createGuid() +createGuid()
}

function createGuid() {
    return (((1 + Math.random()) * 65536) | 0).toString(16).substring(1)
}

 

2.3 解密vl5x(难点)

解这个vl5x时,说实话自己被困恼了,因为自己找了一个不靠谱的反混淆网站,导致耽误了很多时间。

ok,开搞!

1、老规矩,ctrl+c、ctrl+f、ctrl+v呗。

中国裁判文书网----最最最详细爬虫----基于各位大佬的帖子---更新一版----步骤不详细?你打死我 本爬虫编写日期:2019-07-30_第16张图片

同样挨个找一下,发现如下图:

中国裁判文书网----最最最详细爬虫----基于各位大佬的帖子---更新一版----步骤不详细?你打死我 本爬虫编写日期:2019-07-30_第17张图片

 

这个时候我们应该继续查找getKey()喽,看他的庐山真面目。同样的方法ctrl+c、ctrl+f、ctrl+v。

中国裁判文书网----最最最详细爬虫----基于各位大佬的帖子---更新一版----步骤不详细?你打死我 本爬虫编写日期:2019-07-30_第18张图片

挨个查找,发现在Lawyee.CPWSW.ListExtend.js文件中找到getKey()的定义,如下

中国裁判文书网----最最最详细爬虫----基于各位大佬的帖子---更新一版----步骤不详细?你打死我 本爬虫编写日期:2019-07-30_第19张图片

eval是什么?de是什么?_fxxx是什么?这个函数的函数体为什么这么奇怪?  好,挨个”解答“。

  • eval是什么?                           答:不知道,据说有这个就是加密的
  • de是什么?                              答:它是个函数,就在getKey()函数的上面定义了
  • _fxxx是什么?                         答:它是个函数,就在getKey()函数的上面定义了
  • 这个函数位什么这么奇怪?     答:因为它加密了,别问我什么样是加密了,我也不是很清楚,可能比较乱就是加密了吧。

下面这段代码是从Lawyee.CPWSW.ListExtend.js文件中复制出来的,包含了de函数、_fxxx函数、getKey()函数

var _fxxx = 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
};
function de(str, count, strReplace) {
    var arrReplace = strReplace.split("|");
    for (var i = 0; i < count; i++) {
        str = str.replace(new RegExp("\\{" + i + "\\}","g"), arrReplace[i])
    }
    return str
}
function getKey() {
    eval(de('eval(_fxxx(\'e n(7){9 d=0;j(9 i=0;i<7.k;i++){d+=(7.g(i)<<(i%m))}f d}e p(7){9 d=0;j(9 i=0;i<7.k;i++){d+=(7.g(i)<<(i%m))+i}f d}e E(7,o){9 d=0;j(9 i=0;i<7.k;i++){d+=(7.g(i)<<(i%m))+(i*o)}f d}e x(7,o){9 d=0;j(9 i=0;i<7.k;i++){d+=(7.g(i)<<(i%m))+(i+o-7.g(i))}f d}e z(7){9 7=7.8(5,5*5)+7.8((5+1)*(5+1),3);9 a=7.8(5)+7.8(-4);9 b=7.8(4)+a.8(-6);f h(7).8(4,l)}e w(7){9 7=7.8(5,5*5)+"5"+7.8(1,2)+"1"+7.8((5+1)*(5+1),3);9 a=7.8(5)+7.8(4);9 b=7.8(t)+a.8(-6);9 c=7.8(4)+a.8(6);f h(c).8(4,l)}e A(7){9 7=7.8(5,5*5)+"r"+7.8(1,2)+7.8((5+1)*(5+1),3);9 a=n(7.8(5))+7.8(4);9 b=n(7.8(5))+7.8(4);9 c=7.8(4)+b.8(5);f h(c).8(1,l)}e y(7){9 7=7.8(5,5*5)+"r"+7.8(1,2)+7.8((5+1)*(5+1),3);9 a=p(7.8(5))+7.8(4);9 b=7.8(4)+a.8(5);9 c=n(7.8(5))+7.8(4);f h(b).8(3,l)}e B(7){9 7=7.8(5,5*5)+"2"+7.8(1,2)+7.8((5+1)*(5+1),3);9 d=0;j(9 i=0;i<7.8(1).k;i++){d+=(7.g(i)<<(i%m))}9 s=d+7.8(4);9 d=0;9 a=7.8(5);j(9 i=0;i

2、找到了函数getKey(),但是被代码混淆了,需要反混淆。

大家记住,一定要找个靠谱的网站,我就是因为开始用的垃圾反混淆网站,浪费了很多的时间。

推荐大家用这个网站:https://tool.lu/js/      至少解本文的代码没有问题。

开搞!请仔细看下面的操作

第一步:我们先分析一下加密的内容的特点

中国裁判文书网----最最最详细爬虫----基于各位大佬的帖子---更新一版----步骤不详细?你打死我 本爬虫编写日期:2019-07-30_第20张图片

第二步,开始解密(反混淆)

我只详细说其中的两个,其他的按照这个步骤来就行了。

先说序号1:

在开发者工具中,三次点击这一行(就全部选中这一行了),复制,粘贴到解密网站中。

将开头的de两个字母替换,点击解密,如下图

中国裁判文书网----最最最详细爬虫----基于各位大佬的帖子---更新一版----步骤不详细?你打死我 本爬虫编写日期:2019-07-30_第21张图片

 

结果如下图,再将_fxxx替换,点击解密。

中国裁判文书网----最最最详细爬虫----基于各位大佬的帖子---更新一版----步骤不详细?你打死我 本爬虫编写日期:2019-07-30_第22张图片

结果如下图,是不是很神奇。全变成函数了。后面我会给出所有解密后的代码。

中国裁判文书网----最最最详细爬虫----基于各位大佬的帖子---更新一版----步骤不详细?你打死我 本爬虫编写日期:2019-07-30_第23张图片

 

再说序号7的解密

同样三击全选,复制,粘贴到网站。

将开头的_fxxx两个字母替换,同时将de替换。

可能有人会问序号1解密是先解de然后再解_fxxx,为什么这步就一下全部替换了呢?我只能说这次de和_fxxx的位置处于同等位置。

点击解密,如下图:

中国裁判文书网----最最最详细爬虫----基于各位大佬的帖子---更新一版----步骤不详细?你打死我 本爬虫编写日期:2019-07-30_第24张图片

得到结果,如下:

中国裁判文书网----最最最详细爬虫----基于各位大佬的帖子---更新一版----步骤不详细?你打死我 本爬虫编写日期:2019-07-30_第25张图片

 

其他的自己解一下,很好弄。下面是解好的getKey()的所有代码。有点多,介于直观性,直接贴出来了。大家如果不喜欢,我可以换成文件形式。

function getKey() {

// ********************第一段代码的解密结果**********************//
    function strToLong(str) {
        var long = 0;
        for (var i = 0; i < str.length; i++) {
            long += (str.charCodeAt(i) << (i % 16))
        }
        return long
    }

    function strToLongEn(str) {
        var long = 0;
        for (var i = 0; i < str.length; i++) {
            long += (str.charCodeAt(i) << (i % 16)) + i
        }
        return long
    }

    function strToLongEn2(str, step) {
        var long = 0;
        for (var i = 0; i < str.length; i++) {
            long += (str.charCodeAt(i) << (i % 16)) + (i * step)
        }
        return long
    }

    function strToLongEn3(str, step) {
        var long = 0;
        for (var i = 0; i < str.length; i++) {
            long += (str.charCodeAt(i) << (i % 16)) + (i + step - str.charCodeAt(i))
        }
        return long
    }

    function makeKey_0(str) {
        var str = str.substr(5, 5 * 5) + str.substr((5 + 1) * (5 + 1), 3);
        var a = str.substr(5) + str.substr(-4);
        var b = str.substr(4) + a.substr(-6);
        return hex_md5(str).substr(4, 24)
    }

    function makeKey_1(str) {
        var str = str.substr(5, 5 * 5) + "5" + str.substr(1, 2) + "1" + str.substr((5 + 1) * (5 + 1), 3);
        var a = str.substr(5) + str.substr(4);
        var b = str.substr(12) + a.substr(-6);
        var c = str.substr(4) + a.substr(6);
        return hex_md5(c).substr(4, 24)
    }

    function makeKey_2(str) {
        var str = str.substr(5, 5 * 5) + "15" + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3);
        var a = strToLong(str.substr(5)) + str.substr(4);
        var b = strToLong(str.substr(5)) + str.substr(4);
        var c = str.substr(4) + b.substr(5);
        return hex_md5(c).substr(1, 24)
    }

    function makeKey_3(str) {
        var str = str.substr(5, 5 * 5) + "15" + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3);
        var a = strToLongEn(str.substr(5)) + str.substr(4);
        var b = str.substr(4) + a.substr(5);
        var c = strToLong(str.substr(5)) + str.substr(4);
        return hex_md5(b).substr(3, 24)
    }

    function makeKey_4(str) {
        var str = str.substr(5, 5 * 5) + "2" + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3);
        var long = 0;
        for (var i = 0; i < str.substr(1).length; i++) {
            long += (str.charCodeAt(i) << (i % 16))
        }
        var aa = long + str.substr(4);
        var long = 0;
        var a = str.substr(5);
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 16)) + i
        }
        a = long + "" + str.substr(4);
        var b = hex_md5(str.substr(1)) + strToLong(a.substr(5));
        return hex_md5(b).substr(3, 24)
    }

    function makeKey_5(str) {
        var base = new Base64();
        var str = base.encode(str.substr(5, 5 * 5) + str.substr(1, 2) + "1") + str.substr((5 + 1) * (5 + 1), 3);
        var a = strToLongEn(str.substr(4, 10)) + str.substr(-4);
        var b = hex_md5(str.substr(4)) + a.substr(2);
        var a = str.substr(3);
        var c = strToLong(str.substr(5)) + str.substr(4);
        var aa = long + str.substr(4);
        var long = 0;
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 12)) + i
        }
        a = long + "" + str.substr(4);
        return hex_md5(str).substr(4, 24)
    }


// ********************第二段代码的解密结果**********************//
    function makeKey_6(str) {
        var base = new Base64();
        var str = str.substr(5, 5 * 5) + str.substr((5 + 1) * (5 + 1), 3);
        var a = base.encode(str.substr(4, 10)) + str.substr(2);
        var b = str.substr(6) + a.substr(2);
        var c = strToLong(str.substr(5)) + str.substr(4);
        var aa = long + str.substr(4);
        var long = 0;
        var a = str.substr(5);
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 16)) + i
        }
        a = long + "" + str.substr(4);
        return hex_md5(b).substr(2, 24)
    }

    function makeKey_7(str) {
        var base = new Base64();
        var str = base.encode(str.substr(5, 5 * 4) + "55" + str.substr(1, 2)) + str.substr((5 + 1) * (5 + 1), 3);
        var long = 0;
        for (var i = 0; i < str.substr(1).length; i++) {
            long += (str.charCodeAt(i) << (i % 16 + 5)) + 3 + 5
        }
        var aa = long + str.substr(4);
        var long = 0;
        var a = str.substr(5);
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 16))
        }
        a = long + "" + str.substr(4);
        var b = hex_md5(str.substr(1)) + strToLong(a.substr(5));
        return hex_md5(b).substr(3, 24)
    }

    function makeKey_8(str) {
        var base = new Base64();
        var str = base.encode(str.substr(5, 5 * 5 - 1) + "5" + "-" + "5") + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3);
        var long = 0;
        for (var i = 0; i < str.substr(1).length; i++) {
            long += (str.charCodeAt(i) << (i % 16))
        }
        var aa = long + str.substr(4);
        var long = 0;
        var a = str.substr(5);
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 16))
        }
        a = long + "" + str.substr(4);
        var b = hex_md5(str.substr(1)) + strToLongEn(a.substr(5));
        return hex_md5(b).substr(4, 24)
    }

    function makeKey_9(str) {
        var str = str.substr(5, 5 * 5) + "5" + str.substr(1, 2) + "1" + str.substr((5 + 1) * (5 + 1), 3);
        var a = str.substr(5) + str.substr(4);
        var b = str.substr(12) + a.substr(-6);
        var c = hex_sha1(str.substr(4)) + a.substr(6);
        return hex_md5(c).substr(4, 24)
    }

    function makeKey_10(str) {
        var base = new Base64();
        var str = base.encode(str.substr(5, 5 * 5 - 1) + "5") + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3);
        var long = 0;
        for (var i = 0; i < str.substr(1).length; i++) {
            long += (str.charCodeAt(i) << (i % 16))
        }
        var aa = long + str.substr(4);
        var long = 0;
        var a = str.substr(5);
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 16))
        }
        a = long + "" + str.substr(4);
        var b = hex_md5(str.substr(1)) + hex_sha1(a.substr(5));
        return hex_md5(b).substr(4, 24)
    }

    function makeKey_11(str) {
        var base = new Base64();
        var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3);
        var long = 0;
        for (var i = 0; i < str.substr(1).length; i++) {
            long += (str.charCodeAt(i) << (i % 16))
        }
        var aa = long + str.substr(4);
        var long = 0;
        var a = str.substr(5);
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 16))
        }
        a = long + "" + str.substr(2);
        var b = str.substr(1) + hex_sha1(a.substr(5));
        return hex_md5(b).substr(2, 24)
    }

    function makeKey_12(str) {
        var base = new Base64();
        var str = str.substr(5, 5 * 5 - 1) + str.substr((5 + 1) * (5 + 1), 3) + "2" + str.substr(1, 2);
        var long = 0;
        for (var i = 0; i < str.substr(1).length; i++) {
            long += (str.charCodeAt(i) << (i % 16))
        }
        var aa = long + str.substr(4);
        var long = 0;
        var a = str.substr(5);
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 16))
        }
        a = long + "" + str.substr(2);
        var b = str.substr(1) + hex_sha1(str.substr(5));
        return hex_md5(b).substr(1, 24)
    }

    function makeKey_13(str) {
        var base = new Base64();
        var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2);
        var long = 0;
        for (var i = 0; i < str.substr(1).length; i++) {
            long += (str.charCodeAt(i) << (i % 16))
        }
        var aa = long + str.substr(4);
        var long = 0;
        var a = str.substr(5);
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 16))
        }
        a = long + "" + str.substr(2);
        var b = base.encode(str.substr(1) + hex_sha1(str.substr(5)));
        return hex_md5(b).substr(1, 24)
    }

    function makeKey_14(str) {
        var base = new Base64();
        var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2);
        var long = 0;
        for (var i = 0; i < str.substr(1).length; i++) {
            long += (str.charCodeAt(i) << (i % 16))
        }
        var aa = long + str.substr(4);
        var long = 0;
        var a = str.substr(5);
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 16))
        }
        a = long + "" + str.substr(2);
        var b = base.encode(str.substr(1) + str.substr(5) + str.substr(1, 3));
        return hex_sha1(b).substr(1, 24)
    }

    function makeKey_15(str) {
        var base = new Base64();
        var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2);
        var long = 0;
        for (var i = 0; i < str.substr(1).length; i++) {
            long += (str.charCodeAt(i) << (i % 16))
        }
        var aa = long + str.substr(4);
        var long = 0;
        var a = str.substr(5);
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 16))
        }
        a = long + "" + str.substr(2);
        var b = base.encode(a.substr(1) + str.substr(5) + str.substr(2, 3));
        return hex_sha1(b).substr(1, 24)
    }

    function makeKey_16(str) {
        var base = new Base64();
        var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2) + "-" + "5";
        var long = 0;
        for (var i = 0; i < str.substr(1).length; i++) {
            long += (str.charCodeAt(i) << (i % 11))
        }
        var aa = long + str.substr(4);
        var long = 0;
        var a = str.substr(5);
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 16)) + i
        }
        a = long + "" + str.substr(2);
        var b = base.encode(a.substr(1)) + strToLongEn2(str.substr(5), 5) + str.substr(2, 3);
        return hex_md5(b).substr(2, 24)
    }

    function makeKey_17(str) {
        var base = new Base64();
        var str = str.substr(5, 5 * 5 - 1) + "7" + str.substr(1, 2) + "-" + "5";
        var long = 0;
        for (var i = 0; i < str.substr(1).length; i++) {
            long += (str.charCodeAt(i) << (i % 11))
        }
        var aa = long + str.substr(4);
        var long = 0;
        var a = str.substr(5);
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 16)) + i
        }
        a = long + "" + str.substr(2);
        var b = base.encode(a.substr(1)) + strToLongEn2(str.substr(5), 5 + 1) + str.substr(2 + 5, 3);
        return hex_md5(b).substr(0, 24)
    }

    function makeKey_18(str) {
        var base = new Base64();
        var str = str.substr(5, 5 * 5 - 1) + "7" + str.substr(1, 2) + "5" + str.substr(2 + 5, 3);
        var long = 0;
        for (var i = 0; i < str.substr(1).length; i++) {
            long += (str.charCodeAt(i) << (i % 11))
        }
        var aa = long + str.substr(4);
        var long = 0;
        var a = str.substr(5);
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 16)) + i
        }
        a = long + "" + str.substr(2);
        var b = a.substr(1) + strToLongEn2(str.substr(5), 5 + 1) + str.substr(2 + 5, 3);
        return hex_md5(b).substr(0, 24)
    }

    function makeKey_19(str) {
        var base = new Base64();
        var str = str.substr(5, 5 * 5 - 1) + "7" + str.substr(5, 2) + "5" + str.substr(2 + 5, 3);
        var long = 0;
        for (var i = 0; i < str.substr(1).length; i++) {
            long += (str.charCodeAt(i) << (i % 11))
        }
        var aa = long + str.substr(4);
        var long = 0;
        var a = str.substr(5);
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 16)) + i
        }
        a = long + "" + str.substr(2);
        var b = a.substr(1) + strToLongEn3(str.substr(5), 5 - 1) + str.substr(2 + 5, 3);
        return hex_md5(b).substr(0, 24)
    }

    function makeKey_20(str) {
        return hex_md5(makeKey_10(str) + makeKey_5(str)).substr(1, 24)
    }


// ********************第三段代码的解密结果**********************//
    function makeKey_21(str) {
        return hex_md5(makeKey_11(str) + makeKey_3(str)).substr(2, 24)
    }

    function makeKey_22(str) {
        return hex_md5(makeKey_14(str) + makeKey_19(str)).substr(3, 24)
    }

    function makeKey_23(str) {
        return hex_md5(makeKey_15(str) + makeKey_0(str)).substr(4, 24)
    }

    function makeKey_24(str) {
        return hex_md5(makeKey_16(str) + makeKey_1(str)).substr(1, 24)
    }

    function makeKey_25(str) {
        return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(2, 24)
    }

    function makeKey_26(str) {
        return hex_md5(makeKey_10(str) + makeKey_5(str)).substr(3, 24)
    }

    function makeKey_27(str) {
        return hex_md5(makeKey_17(str) + makeKey_3(str)).substr(4, 24)
    }

    function makeKey_28(str) {
        return hex_md5(makeKey_18(str) + makeKey_7(str)).substr(1, 24)
    }

    function makeKey_29(str) {
        return hex_md5(makeKey_19(str) + makeKey_3(str)).substr(2, 24)
    }

    function makeKey_30(str) {
        return hex_md5(makeKey_0(str) + makeKey_7(str)).substr(3, 24)
    }

    function makeKey_31(str) {
        return hex_md5(makeKey_1(str) + makeKey_8(str)).substr(4, 24)
    }

    function makeKey_32(str) {
        return hex_md5(makeKey_4(str) + makeKey_14(str)).substr(3, 24)
    }

    function makeKey_33(str) {
        return hex_md5(makeKey_5(str) + makeKey_15(str)).substr(4, 24)
    }

    function makeKey_34(str) {
        return hex_md5(makeKey_3(str) + makeKey_16(str)).substr(1, 24)
    }

    function makeKey_35(str) {
        return hex_md5(makeKey_7(str) + makeKey_9(str)).substr(2, 24)
    }

    function makeKey_36(str) {
        return hex_md5(makeKey_8(str) + makeKey_10(str)).substr(3, 24)
    }

    function makeKey_37(str) {
        return hex_md5(makeKey_6(str) + makeKey_17(str)).substr(1, 24)
    }

    function makeKey_38(str) {
        return hex_md5(makeKey_12(str) + makeKey_18(str)).substr(2, 24)
    }

    function makeKey_39(str) {
        return hex_md5(makeKey_14(str) + makeKey_19(str)).substr(3, 24)
    }

    function makeKey_40(str) {
        return hex_md5(makeKey_15(str) + makeKey_0(str)).substr(4, 24)
    }

    function makeKey_41(str) {
        return hex_md5(makeKey_16(str) + makeKey_1(str)).substr(3, 24)
    }

    function makeKey_42(str) {
        return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(4, 24)
    }

    function makeKey_43(str) {
        return hex_md5(makeKey_10(str) + makeKey_5(str)).substr(1, 24)
    }

    function makeKey_44(str) {
        return hex_md5(makeKey_17(str) + makeKey_3(str)).substr(2, 24)
    }

    function makeKey_45(str) {
        return hex_md5(makeKey_18(str) + makeKey_7(str)).substr(3, 24)
    }

    function makeKey_46(str) {
        return hex_md5(makeKey_19(str) + makeKey_17(str)).substr(4, 24)
    }

    function makeKey_47(str) {
        return hex_md5(makeKey_0(str) + makeKey_18(str)).substr(1, 24)
    }

    function makeKey_48(str) {
        return hex_md5(makeKey_1(str) + makeKey_19(str)).substr(2, 24)
    }

    function makeKey_49(str) {
        return hex_md5(makeKey_4(str) + makeKey_0(str)).substr(3, 24)
    }

    function makeKey_50(str) {
        return hex_md5(makeKey_5(str) + makeKey_1(str)).substr(4, 24)
    }

    function makeKey_51(str) {
        return hex_md5(makeKey_3(str) + makeKey_4(str)).substr(1, 24)
    }

    function makeKey_52(str) {
        return hex_md5(makeKey_7(str) + makeKey_14(str)).substr(2, 24)
    }

    function makeKey_53(str) {
        return hex_md5(makeKey_12(str) + makeKey_15(str)).substr(3, 24)
    }

    function makeKey_54(str) {
        return hex_md5(makeKey_14(str) + makeKey_16(str)).substr(4, 24)
    }

    function makeKey_55(str) {
        return hex_md5(makeKey_15(str) + makeKey_9(str)).substr(3, 24)
    }

    function makeKey_56(str) {
        return hex_md5(makeKey_16(str) + makeKey_10(str)).substr(4, 24)
    }

    function makeKey_57(str) {
        return hex_md5(makeKey_9(str) + makeKey_17(str)).substr(1, 24)
    }

    function makeKey_58(str) {
        return hex_md5(makeKey_10(str) + makeKey_18(str)).substr(2, 24)
    }

    function makeKey_59(str) {
        return hex_md5(makeKey_17(str) + makeKey_19(str)).substr(3, 24)
    }

    function makeKey_60(str) {
        return hex_md5(makeKey_18(str) + makeKey_0(str)).substr(1, 24)
    }

    function makeKey_61(str) {
        return hex_md5(makeKey_19(str) + makeKey_1(str)).substr(2, 24)
    }

    function makeKey_62(str) {
        return hex_md5(makeKey_0(str) + makeKey_4(str)).substr(3, 24)
    }

    function makeKey_63(str) {
        return hex_md5(makeKey_1(str) + makeKey_19(str)).substr(4, 24)
    }

    function makeKey_64(str) {
        return hex_md5(makeKey_4(str) + makeKey_0(str)).substr(3, 24)
    }

    function makeKey_65(str) {
        return hex_md5(makeKey_14(str) + makeKey_1(str)).substr(1, 24)
    }

    function makeKey_66(str) {
        return hex_md5(makeKey_15(str) + makeKey_4(str)).substr(2, 24)
    }

    function makeKey_67(str) {
        return hex_md5(makeKey_16(str) + makeKey_5(str)).substr(3, 24)
    }

    function makeKey_68(str) {
        return hex_md5(makeKey_9(str) + makeKey_3(str)).substr(4, 24)
    }

    function makeKey_69(str) {
        return hex_md5(makeKey_10(str) + makeKey_7(str)).substr(1, 24)
    }

    function makeKey_70(str) {
        return hex_md5(makeKey_17(str) + makeKey_0(str)).substr(2, 24)
    }

    function makeKey_71(str) {
        return hex_md5(makeKey_18(str) + makeKey_1(str)).substr(3, 24)
    }

    function makeKey_72(str) {
        return hex_md5(makeKey_19(str) + makeKey_4(str)).substr(4, 24)
    }

    function makeKey_73(str) {
        return hex_md5(makeKey_0(str) + makeKey_17(str)).substr(1, 24)
    }

    function makeKey_74(str) {
        return hex_md5(makeKey_1(str) + makeKey_18(str)).substr(2, 24)
    }

    function makeKey_75(str) {
        return hex_md5(makeKey_14(str) + makeKey_19(str)).substr(3, 24)
    }

    function makeKey_76(str) {
        return hex_md5(makeKey_15(str) + makeKey_0(str)).substr(4, 24)
    }

    function makeKey_77(str) {
        return hex_md5(makeKey_16(str) + makeKey_1(str)).substr(3, 24)
    }

    function makeKey_78(str) {
        return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(4, 24)
    }

    function makeKey_79(str) {
        return hex_md5(makeKey_10(str) + makeKey_9(str)).substr(1, 24)
    }

    function makeKey_80(str) {
        return hex_md5(makeKey_17(str) + makeKey_10(str)).substr(2, 24)
    }

    function makeKey_81(str) {
        return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_82(str) {
        return hex_md5(makeKey_14(str) + makeKey_18(str)).substr(1, 24)
    }

    function makeKey_83(str) {
        return hex_md5(makeKey_15(str) + makeKey_19(str)).substr(4, 24)
    }

    function makeKey_84(str) {
        return hex_md5(makeKey_16(str) + makeKey_0(str)).substr(1, 24)
    }

    function makeKey_85(str) {
        return hex_md5(makeKey_9(str) + makeKey_1(str)).substr(2, 24)
    }

    function makeKey_86(str) {
        return hex_md5(makeKey_10(str) + makeKey_4(str)).substr(3, 24)
    }

    function makeKey_87(str) {
        return hex_md5(makeKey_14(str) + makeKey_14(str)).substr(4, 24)
    }

    function makeKey_88(str) {
        return hex_md5(makeKey_15(str) + makeKey_15(str)).substr(1, 24)
    }

    function makeKey_89(str) {
        return hex_md5(makeKey_16(str) + makeKey_16(str)).substr(2, 24)
    }

    function makeKey_90(str) {
        return hex_md5(makeKey_9(str) + makeKey_9(str)).substr(3, 24)
    }

    function makeKey_91(str) {
        return hex_md5(makeKey_10(str) + makeKey_10(str)).substr(4, 24)
    }

    function makeKey_92(str) {
        return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_93(str) {
        return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(4, 24)
    }

    function makeKey_94(str) {
        return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(1, 24)
    }

    function makeKey_95(str) {
        return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(2, 24)
    }

    function makeKey_96(str) {
        return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(3, 24)
    }

    function makeKey_97(str) {
        return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(4, 24)
    }

    function makeKey_98(str) {
        return hex_md5(makeKey_5(str) + makeKey_5(str)).substr(3, 24)
    }

    function makeKey_99(str) {
        return hex_md5(makeKey_3(str) + makeKey_3(str)).substr(4, 24)
    }

    function makeKey_100(str) {
        return hex_md5(makeKey_7(str) + makeKey_3(str)).substr(1, 24)
    }

    function makeKey_101(str) {
        return hex_md5(makeKey_10(str) + makeKey_7(str)).substr(2, 24)
    }

    function makeKey_102(str) {
        return hex_md5(makeKey_17(str) + makeKey_18(str)).substr(1, 24)
    }

    function makeKey_103(str) {
        return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(2, 24)
    }

    function makeKey_104(str) {
        return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(3, 24)
    }

    function makeKey_105(str) {
        return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(4, 24)
    }

    function makeKey_106(str) {
        return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(1, 24)
    }

    function makeKey_107(str) {
        return hex_md5(makeKey_14(str) + makeKey_14(str)).substr(2, 24)
    }

    function makeKey_108(str) {
        return hex_md5(makeKey_15(str) + makeKey_15(str)).substr(3, 24)
    }

    function makeKey_109(str) {
        return hex_md5(makeKey_16(str) + makeKey_16(str)).substr(4, 24)
    }

    function makeKey_110(str) {
        return hex_md5(makeKey_9(str) + makeKey_9(str)).substr(1, 24)
    }

    function makeKey_111(str) {
        return hex_md5(makeKey_10(str) + makeKey_10(str)).substr(2, 24)
    }

    function makeKey_112(str) {
        return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_113(str) {
        return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(4, 24)
    }

    function makeKey_114(str) {
        return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(3, 24)
    }

    function makeKey_115(str) {
        return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(4, 24)
    }

    function makeKey_116(str) {
        return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(1, 24)
    }

    function makeKey_117(str) {
        return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(2, 24)
    }

    function makeKey_118(str) {
        return hex_md5(makeKey_5(str) + makeKey_15(str)).substr(3, 24)
    }

    function makeKey_119(str) {
        return hex_md5(makeKey_3(str) + makeKey_16(str)).substr(1, 24)
    }

    function makeKey_120(str) {
        return hex_md5(makeKey_19(str) + makeKey_9(str)).substr(1, 24)
    }

    function makeKey_121(str) {
        return hex_md5(makeKey_0(str) + makeKey_10(str)).substr(2, 24)
    }

    function makeKey_122(str) {
        return hex_md5(makeKey_1(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_123(str) {
        return hex_md5(makeKey_4(str) + makeKey_18(str)).substr(4, 24)
    }

    function makeKey_124(str) {
        return hex_md5(makeKey_5(str) + makeKey_19(str)).substr(1, 24)
    }

    function makeKey_125(str) {
        return hex_md5(makeKey_3(str) + makeKey_0(str)).substr(2, 24)
    }

    function makeKey_126(str) {
        return hex_md5(makeKey_7(str) + makeKey_1(str)).substr(3, 24)
    }

    function makeKey_127(str) {
        return hex_md5(makeKey_3(str) + makeKey_4(str)).substr(4, 24)
    }

    function makeKey_128(str) {
        return hex_md5(makeKey_7(str) + makeKey_5(str)).substr(1, 24)
    }

    function makeKey_129(str) {
        return hex_md5(makeKey_8(str) + makeKey_3(str)).substr(2, 24)
    }

    function makeKey_130(str) {
        return hex_md5(makeKey_14(str) + makeKey_7(str)).substr(3, 24)
    }

    function makeKey_131(str) {
        return hex_md5(makeKey_15(str) + makeKey_10(str)).substr(4, 24)
    }

    function makeKey_132(str) {
        return hex_md5(makeKey_16(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_133(str) {
        return hex_md5(makeKey_9(str) + makeKey_18(str)).substr(4, 24)
    }

    function makeKey_134(str) {
        return hex_md5(makeKey_10(str) + makeKey_19(str)).substr(1, 24)
    }

    function makeKey_135(str) {
        return hex_md5(makeKey_17(str) + makeKey_0(str)).substr(2, 24)
    }

    function makeKey_136(str) {
        return hex_md5(makeKey_18(str) + makeKey_1(str)).substr(1, 24)
    }

    function makeKey_137(str) {
        return hex_md5(makeKey_19(str) + makeKey_14(str)).substr(2, 24)
    }

    function makeKey_138(str) {
        return hex_md5(makeKey_0(str) + makeKey_15(str)).substr(3, 24)
    }

    function makeKey_139(str) {
        return hex_md5(makeKey_1(str) + makeKey_16(str)).substr(4, 24)
    }

    function makeKey_140(str) {
        return hex_md5(makeKey_4(str) + makeKey_9(str)).substr(1, 24)
    }

    function makeKey_141(str) {
        return hex_md5(makeKey_5(str) + makeKey_10(str)).substr(2, 24)
    }

    function makeKey_142(str) {
        return hex_md5(makeKey_3(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_143(str) {
        return hex_md5(makeKey_7(str) + makeKey_18(str)).substr(4, 24)
    }

    function makeKey_144(str) {
        return hex_md5(makeKey_17(str) + makeKey_19(str)).substr(1, 24)
    }

    function makeKey_145(str) {
        return hex_md5(makeKey_18(str) + makeKey_0(str)).substr(2, 24)
    }

    function makeKey_146(str) {
        return hex_md5(makeKey_19(str) + makeKey_1(str)).substr(3, 24)
    }

    function makeKey_147(str) {
        return hex_md5(makeKey_0(str) + makeKey_4(str)).substr(4, 24)
    }

    function makeKey_148(str) {
        return hex_md5(makeKey_1(str) + makeKey_5(str)).substr(3, 24)
    }

    function makeKey_149(str) {
        return hex_md5(makeKey_4(str) + makeKey_3(str)).substr(4, 24)
    }

    function makeKey_150(str) {
        return hex_md5(makeKey_14(str) + makeKey_19(str)).substr(1, 24)
    }

    function makeKey_151(str) {
        return hex_md5(makeKey_15(str) + makeKey_0(str)).substr(2, 24)
    }

    function makeKey_152(str) {
        return hex_md5(makeKey_16(str) + makeKey_1(str)).substr(3, 24)
    }

    function makeKey_153(str) {
        return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(1, 24)
    }

    function makeKey_154(str) {
        return hex_md5(makeKey_10(str) + makeKey_5(str)).substr(1, 24)
    }

    function makeKey_155(str) {
        return hex_md5(makeKey_17(str) + makeKey_3(str)).substr(2, 24)
    }

    function makeKey_156(str) {
        return hex_md5(makeKey_18(str) + makeKey_7(str)).substr(3, 24)
    }

    function makeKey_157(str) {
        return hex_md5(makeKey_19(str) + makeKey_3(str)).substr(4, 24)
    }

    function makeKey_158(str) {
        return hex_md5(makeKey_0(str) + makeKey_7(str)).substr(1, 24)
    }

    function makeKey_159(str) {
        return hex_md5(makeKey_1(str) + makeKey_8(str)).substr(2, 24)
    }

    function makeKey_160(str) {
        return hex_md5(makeKey_4(str) + makeKey_14(str)).substr(3, 24)
    }

    function makeKey_161(str) {
        return hex_md5(makeKey_19(str) + makeKey_15(str)).substr(4, 24)
    }

    function makeKey_162(str) {
        return hex_md5(makeKey_0(str) + makeKey_16(str)).substr(1, 24)
    }

    function makeKey_163(str) {
        return hex_md5(makeKey_1(str) + makeKey_9(str)).substr(2, 24)
    }

    function makeKey_164(str) {
        return hex_md5(makeKey_4(str) + makeKey_10(str)).substr(3, 24)
    }

    function makeKey_165(str) {
        return hex_md5(makeKey_5(str) + makeKey_17(str)).substr(4, 24)
    }

    function makeKey_166(str) {
        return hex_md5(makeKey_3(str) + makeKey_18(str)).substr(3, 24)
    }

    function makeKey_167(str) {
        return hex_md5(makeKey_7(str) + makeKey_19(str)).substr(4, 24)
    }

    function makeKey_168(str) {
        return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(1, 24)
    }

    function makeKey_169(str) {
        return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(2, 24)
    }

    function makeKey_170(str) {
        return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(3, 24)
    }

    function makeKey_171(str) {
        return hex_md5(makeKey_17(str) + makeKey_5(str)).substr(1, 24)
    }

    function makeKey_172(str) {
        return hex_md5(makeKey_18(str) + makeKey_3(str)).substr(2, 24)
    }

    function makeKey_173(str) {
        return hex_md5(makeKey_19(str) + makeKey_7(str)).substr(3, 24)
    }

    function makeKey_174(str) {
        return hex_md5(makeKey_0(str) + makeKey_17(str)).substr(4, 24)
    }

    function makeKey_175(str) {
        return hex_md5(makeKey_1(str) + makeKey_18(str)).substr(1, 24)
    }

    function makeKey_176(str) {
        return hex_md5(makeKey_4(str) + makeKey_19(str)).substr(2, 24)
    }

    function makeKey_177(str) {
        return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(3, 24)
    }

    function makeKey_178(str) {
        return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(4, 24)
    }

    function makeKey_179(str) {
        return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(1, 24)
    }

    function makeKey_180(str) {
        return hex_md5(makeKey_18(str) + makeKey_14(str)).substr(3, 24)
    }

    function makeKey_181(str) {
        return hex_md5(makeKey_19(str) + makeKey_15(str)).substr(1, 24)
    }

    function makeKey_182(str) {
        return hex_md5(makeKey_0(str) + makeKey_16(str)).substr(2, 24)
    }

    function makeKey_183(str) {
        return hex_md5(makeKey_1(str) + makeKey_9(str)).substr(3, 24)
    }

    function makeKey_184(str) {
        return hex_md5(makeKey_4(str) + makeKey_10(str)).substr(4, 24)
    }

    function makeKey_185(str) {
        return hex_md5(makeKey_14(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_186(str) {
        return hex_md5(makeKey_15(str) + makeKey_18(str)).substr(4, 24)
    }

    function makeKey_187(str) {
        return hex_md5(makeKey_16(str) + makeKey_19(str)).substr(4, 24)
    }

    function makeKey_188(str) {
        return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(1, 24)
    }

    function makeKey_189(str) {
        return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(2, 24)
    }

    function makeKey_190(str) {
        return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(3, 24)
    }

    function makeKey_191(str) {
        return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(4, 24)
    }

    function makeKey_192(str) {
        return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(1, 24)
    }

    function makeKey_193(str) {
        return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(2, 24)
    }

    function makeKey_194(str) {
        return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(3, 24)
    }

    function makeKey_195(str) {
        return hex_md5(makeKey_4(str) + makeKey_14(str)).substr(4, 24)
    }

    function makeKey_196(str) {
        return hex_md5(makeKey_5(str) + makeKey_15(str)).substr(3, 24)
    }

    function makeKey_197(str) {
        return hex_md5(makeKey_3(str) + makeKey_16(str)).substr(4, 24)
    }

    function makeKey_198(str) {
        return hex_md5(makeKey_3(str) + makeKey_9(str)).substr(1, 24)
    }

    function makeKey_199(str) {
        return hex_md5(makeKey_7(str) + makeKey_1(str)).substr(2, 24)
    }

    function makeKey_200(str) {
        return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(2, 24)
    }

    function makeKey_201(str) {
        return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(3, 24)
    }

    function makeKey_202(str) {
        return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(1, 24)
    }

    function makeKey_203(str) {
        return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(2, 24)
    }

    function makeKey_204(str) {
        return hex_md5(makeKey_4(str) + makeKey_5(str)).substr(3, 24)
    }

    function makeKey_205(str) {
        return hex_md5(makeKey_14(str) + makeKey_3(str)).substr(4, 24)
    }

    function makeKey_206(str) {
        return hex_md5(makeKey_15(str) + makeKey_7(str)).substr(1, 24)
    }

    function makeKey_207(str) {
        return hex_md5(makeKey_16(str) + makeKey_17(str)).substr(2, 24)
    }

    function makeKey_208(str) {
        return hex_md5(makeKey_9(str) + makeKey_18(str)).substr(3, 24)
    }

    function makeKey_209(str) {
        return hex_md5(makeKey_10(str) + makeKey_19(str)).substr(4, 24)
    }

    function makeKey_210(str) {
        return hex_md5(makeKey_17(str) + makeKey_0(str)).substr(1, 24)
    }

    function makeKey_211(str) {
        return hex_md5(makeKey_18(str) + makeKey_1(str)).substr(3, 24)
    }

    function makeKey_212(str) {
        return hex_md5(makeKey_19(str) + makeKey_4(str)).substr(1, 24)
    }

    function makeKey_213(str) {
        return hex_md5(makeKey_0(str) + makeKey_14(str)).substr(2, 24)
    }

    function makeKey_214(str) {
        return hex_md5(makeKey_1(str) + makeKey_15(str)).substr(3, 24)
    }

    function makeKey_215(str) {
        return hex_md5(makeKey_4(str) + makeKey_16(str)).substr(4, 24)
    }

    function makeKey_216(str) {
        return hex_md5(makeKey_19(str) + makeKey_9(str)).substr(3, 24)
    }

    function makeKey_217(str) {
        return hex_md5(makeKey_0(str) + makeKey_10(str)).substr(4, 24)
    }

    function makeKey_218(str) {
        return hex_md5(makeKey_1(str) + makeKey_17(str)).substr(4, 24)
    }

    function makeKey_219(str) {
        return hex_md5(makeKey_4(str) + makeKey_18(str)).substr(1, 24)
    }

    function makeKey_220(str) {
        return hex_md5(makeKey_5(str) + makeKey_19(str)).substr(2, 24)
    }

    function makeKey_221(str) {
        return hex_md5(makeKey_3(str) + makeKey_0(str)).substr(3, 24)
    }

    function makeKey_222(str) {
        return hex_md5(makeKey_7(str) + makeKey_1(str)).substr(4, 24)
    }

    function makeKey_223(str) {
        return hex_md5(makeKey_0(str) + makeKey_4(str)).substr(1, 24)
    }

    function makeKey_224(str) {
        return hex_md5(makeKey_1(str) + makeKey_5(str)).substr(2, 24)
    }


// ********************第四段代码的解密结果**********************//
    function makeKey_225(str) {
        return hex_md5(makeKey_4(str) + makeKey_3(str)).substr(3, 24)
    }

    function makeKey_226(str) {
        return hex_md5(makeKey_17(str) + makeKey_7(str)).substr(4, 24)
    }

    function makeKey_227(str) {
        return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(2, 24)
    }

    function makeKey_228(str) {
        return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(3, 24)
    }

    function makeKey_229(str) {
        return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(1, 24)
    }

    function makeKey_230(str) {
        return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(2, 24)
    }

    function makeKey_231(str) {
        return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(3, 24)
    }

    function makeKey_232(str) {
        return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(4, 24)
    }

    function makeKey_233(str) {
        return hex_md5(makeKey_10(str) + makeKey_14(str)).substr(1, 24)
    }

    function makeKey_234(str) {
        return hex_md5(makeKey_17(str) + makeKey_15(str)).substr(2, 24)
    }

    function makeKey_235(str) {
        return hex_md5(makeKey_18(str) + makeKey_16(str)).substr(3, 24)
    }

    function makeKey_236(str) {
        return hex_md5(makeKey_19(str) + makeKey_9(str)).substr(4, 24)
    }

    function makeKey_237(str) {
        return hex_md5(makeKey_0(str) + makeKey_10(str)).substr(1, 24)
    }

    function makeKey_238(str) {
        return hex_md5(makeKey_1(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_239(str) {
        return hex_md5(makeKey_4(str) + makeKey_19(str)).substr(1, 24)
    }

    function makeKey_240(str) {
        return hex_md5(makeKey_14(str) + makeKey_0(str)).substr(2, 24)
    }

    function makeKey_241(str) {
        return hex_md5(makeKey_15(str) + makeKey_1(str)).substr(3, 24)
    }

    function makeKey_242(str) {
        return hex_md5(makeKey_16(str) + makeKey_4(str)).substr(4, 24)
    }

    function makeKey_243(str) {
        return hex_md5(makeKey_9(str) + makeKey_5(str)).substr(3, 24)
    }

    function makeKey_244(str) {
        return hex_md5(makeKey_10(str) + makeKey_3(str)).substr(4, 24)
    }

    function makeKey_245(str) {
        return hex_md5(makeKey_17(str) + makeKey_7(str)).substr(4, 24)
    }

    function makeKey_246(str) {
        return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(2, 24)
    }

    function makeKey_247(str) {
        return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(3, 24)
    }

    function makeKey_248(str) {
        return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(1, 24)
    }

    function makeKey_249(str) {
        return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(2, 24)
    }

    function makeKey_250(str) {
        return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(3, 24)
    }

    function makeKey_251(str) {
        return hex_md5(makeKey_19(str) + makeKey_4(str)).substr(4, 24)
    }

    function makeKey_252(str) {
        return hex_md5(makeKey_0(str) + makeKey_14(str)).substr(1, 24)
    }

    function makeKey_253(str) {
        return hex_md5(makeKey_1(str) + makeKey_15(str)).substr(2, 24)
    }


// ********************第五段代码的解密结果**********************//
    function makeKey_254(str) {
        return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(3, 24)
    }

    function makeKey_255(str) {
        return hex_md5(makeKey_5(str) + makeKey_14(str)).substr(4, 24)
    }

    function makeKey_256(str) {
        return hex_md5(makeKey_3(str) + makeKey_15(str)).substr(1, 24)
    }

    function makeKey_257(str) {
        return hex_md5(makeKey_7(str) + makeKey_16(str)).substr(3, 24)
    }

    function makeKey_258(str) {
        return hex_md5(makeKey_0(str) + makeKey_9(str)).substr(1, 24)
    }

    function makeKey_259(str) {
        return hex_md5(makeKey_1(str) + makeKey_10(str)).substr(2, 24)
    }

    function makeKey_260(str) {
        return hex_md5(makeKey_4(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_261(str) {
        return hex_md5(makeKey_17(str) + makeKey_18(str)).substr(4, 24)
    }

    function makeKey_262(str) {
        return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(3, 24)
    }

    function makeKey_263(str) {
        return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(4, 24)
    }

    function makeKey_264(str) {
        return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(4, 24)
    }

    function makeKey_265(str) {
        return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(1, 24)
    }

    function makeKey_266(str) {
        return hex_md5(makeKey_4(str) + makeKey_19(str)).substr(2, 24)
    }

    function makeKey_267(str) {
        return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(3, 24)
    }

    function makeKey_268(str) {
        return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(4, 24)
    }

    function makeKey_269(str) {
        return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(1, 24)
    }

    function makeKey_270(str) {
        return hex_md5(makeKey_18(str) + makeKey_14(str)).substr(2, 24)
    }

    function makeKey_271(str) {
        return hex_md5(makeKey_19(str) + makeKey_15(str)).substr(3, 24)
    }

    function makeKey_272(str) {
        return hex_md5(makeKey_0(str) + makeKey_16(str)).substr(4, 24)
    }

    function makeKey_273(str) {
        return hex_md5(makeKey_1(str) + makeKey_9(str)).substr(3, 24)
    }

    function makeKey_274(str) {
        return hex_md5(makeKey_19(str) + makeKey_1(str)).substr(4, 24)
    }

    function makeKey_275(str) {
        return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(1, 24)
    }

    function makeKey_276(str) {
        return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(2, 24)
    }

    function makeKey_277(str) {
        return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(2, 24)
    }

    function makeKey_278(str) {
        return hex_md5(makeKey_5(str) + makeKey_4(str)).substr(3, 24)
    }

    function makeKey_279(str) {
        return hex_md5(makeKey_3(str) + makeKey_5(str)).substr(1, 24)
    }

    function makeKey_280(str) {
        return hex_md5(makeKey_7(str) + makeKey_3(str)).substr(2, 24)
    }

    function makeKey_281(str) {
        return hex_md5(makeKey_17(str) + makeKey_7(str)).substr(3, 24)
    }

    function makeKey_282(str) {
        return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(4, 24)
    }

    function makeKey_283(str) {
        return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(1, 24)
    }

    function makeKey_284(str) {
        return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(2, 24)
    }

    function makeKey_285(str) {
        return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(3, 24)
    }

    function makeKey_286(str) {
        return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(4, 24)
    }

    function makeKey_287(str) {
        return hex_md5(makeKey_14(str) + makeKey_4(str)).substr(1, 24)
    }

    function makeKey_288(str) {
        return hex_md5(makeKey_15(str) + makeKey_14(str)).substr(3, 24)
    }

    function makeKey_289(str) {
        return hex_md5(makeKey_16(str) + makeKey_15(str)).substr(1, 24)
    }

    function makeKey_290(str) {
        return hex_md5(makeKey_9(str) + makeKey_16(str)).substr(2, 24)
    }

    function makeKey_291(str) {
        return hex_md5(makeKey_10(str) + makeKey_9(str)).substr(3, 24)
    }

    function makeKey_292(str) {
        return hex_md5(makeKey_17(str) + makeKey_10(str)).substr(4, 24)
    }

    function makeKey_293(str) {
        return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_294(str) {
        return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(4, 24)
    }


// ********************第六段代码的解密结果**********************//
    function makeKey_295(str) {
        return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(4, 24)
    }

    function makeKey_296(str) {
        return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(1, 24)
    }

    function makeKey_297(str) {
        return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(2, 24)
    }

    function makeKey_298(str) {
        return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(3, 24)
    }

    function makeKey_299(str) {
        return hex_md5(makeKey_5(str) + makeKey_5(str)).substr(4, 24)
    }

    function makeKey_300(str) {
        return hex_md5(makeKey_3(str) + makeKey_3(str)).substr(1, 24)
    }

    function makeKey_301(str) {
        return hex_md5(makeKey_7(str) + makeKey_7(str)).substr(2, 24)
    }

    function makeKey_302(str) {
        return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_303(str) {
        return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(4, 24)
    }

    function makeKey_304(str) {
        return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(3, 24)
    }

    function makeKey_305(str) {
        return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(4, 24)
    }

    function makeKey_306(str) {
        return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(1, 24)
    }

    function makeKey_307(str) {
        return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(2, 24)
    }

    function makeKey_308(str) {
        return hex_md5(makeKey_14(str) + makeKey_14(str)).substr(2, 24)
    }

    function makeKey_309(str) {
        return hex_md5(makeKey_15(str) + makeKey_15(str)).substr(3, 24)
    }

    function makeKey_310(str) {
        return hex_md5(makeKey_16(str) + makeKey_16(str)).substr(1, 24)
    }

    function makeKey_311(str) {
        return hex_md5(makeKey_9(str) + makeKey_9(str)).substr(2, 24)
    }

    function makeKey_312(str) {
        return hex_md5(makeKey_10(str) + makeKey_10(str)).substr(3, 24)
    }

    function makeKey_313(str) {
        return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(4, 24)
    }

    function makeKey_314(str) {
        return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(1, 24)
    }

    function makeKey_315(str) {
        return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(2, 24)
    }

    function makeKey_316(str) {
        return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(3, 24)
    }

    function makeKey_317(str) {
        return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(4, 24)
    }

    function makeKey_318(str) {
        return hex_md5(makeKey_5(str) + makeKey_5(str)).substr(1, 24)
    }

    function makeKey_319(str) {
        return hex_md5(makeKey_3(str) + makeKey_3(str)).substr(3, 24)
    }

    function makeKey_320(str) {
        return hex_md5(makeKey_7(str) + makeKey_7(str)).substr(1, 24)
    }

    function makeKey_321(str) {
        return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(2, 24)
    }

    function makeKey_322(str) {
        return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(3, 24)
    }

    function makeKey_323(str) {
        return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(4, 24)
    }

    function makeKey_324(str) {
        return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(3, 24)
    }

    function makeKey_325(str) {
        return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(4, 24)
    }

    function makeKey_326(str) {
        return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(4, 24)
    }

    function makeKey_327(str) {
        return hex_md5(makeKey_19(str) + makeKey_14(str)).substr(1, 24)
    }

    function makeKey_328(str) {
        return hex_md5(makeKey_0(str) + makeKey_15(str)).substr(2, 24)
    }

    function makeKey_329(str) {
        return hex_md5(makeKey_1(str) + makeKey_16(str)).substr(3, 24)
    }

    function makeKey_330(str) {
        return hex_md5(makeKey_4(str) + makeKey_9(str)).substr(4, 24)
    }

    function makeKey_331(str) {
        return hex_md5(makeKey_19(str) + makeKey_10(str)).substr(1, 24)
    }

    function makeKey_332(str) {
        return hex_md5(makeKey_0(str) + makeKey_17(str)).substr(2, 24)
    }

    function makeKey_333(str) {
        return hex_md5(makeKey_1(str) + makeKey_18(str)).substr(3, 24)
    }

    function makeKey_334(str) {
        return hex_md5(makeKey_4(str) + makeKey_18(str)).substr(4, 24)
    }

    function makeKey_335(str) {
        return hex_md5(makeKey_5(str) + makeKey_19(str)).substr(3, 24)
    }

    function makeKey_336(str) {
        return hex_md5(makeKey_3(str) + makeKey_0(str)).substr(4, 24)
    }

    function makeKey_337(str) {
        return hex_md5(makeKey_7(str) + makeKey_1(str)).substr(2, 24)
    }

    function makeKey_338(str) {
        return hex_md5(makeKey_0(str) + makeKey_4(str)).substr(3, 24)
    }

    function makeKey_339(str) {
        return hex_md5(makeKey_1(str) + makeKey_5(str)).substr(1, 24)
    }

    function makeKey_340(str) {
        return hex_md5(makeKey_4(str) + makeKey_3(str)).substr(2, 24)
    }

    function makeKey_341(str) {
        return hex_md5(makeKey_17(str) + makeKey_7(str)).substr(3, 24)
    }

    function makeKey_342(str) {
        return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(4, 24)
    }

    function makeKey_343(str) {
        return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(1, 24)
    }

    function makeKey_344(str) {
        return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(2, 24)
    }

    function makeKey_345(str) {
        return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(3, 24)
    }

    function makeKey_346(str) {
        return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(4, 24)
    }

    function makeKey_347(str) {
        return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(1, 24)
    }

    function makeKey_348(str) {
        return hex_md5(makeKey_10(str) + makeKey_14(str)).substr(3, 24)
    }

    function makeKey_349(str) {
        return hex_md5(makeKey_17(str) + makeKey_15(str)).substr(1, 24)
    }

    function makeKey_350(str) {
        return hex_md5(makeKey_18(str) + makeKey_16(str)).substr(2, 24)
    }

    function makeKey_351(str) {
        return hex_md5(makeKey_19(str) + makeKey_9(str)).substr(3, 24)
    }

    function makeKey_352(str) {
        return hex_md5(makeKey_0(str) + makeKey_10(str)).substr(4, 24)
    }

    function makeKey_353(str) {
        return hex_md5(makeKey_1(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_354(str) {
        return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(4, 24)
    }

    function makeKey_355(str) {
        return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(4, 24)
    }

    function makeKey_356(str) {
        return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(1, 24)
    }

    function makeKey_357(str) {
        return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(2, 24)
    }

    function makeKey_358(str) {
        return hex_md5(makeKey_4(str) + makeKey_5(str)).substr(3, 24)
    }

    function makeKey_359(str) {
        return hex_md5(makeKey_5(str) + makeKey_3(str)).substr(4, 24)
    }

    function makeKey_360(str) {
        return hex_md5(makeKey_3(str) + makeKey_7(str)).substr(2, 24)
    }

    function makeKey_361(str) {
        return hex_md5(makeKey_7(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_362(str) {
        return hex_md5(makeKey_17(str) + makeKey_18(str)).substr(1, 24)
    }

    function makeKey_363(str) {
        return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(2, 24)
    }

    function makeKey_364(str) {
        return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(3, 24)
    }

    function makeKey_365(str) {
        return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(4, 24)
    }

    function makeKey_366(str) {
        return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(1, 24)
    }

    function makeKey_367(str) {
        return hex_md5(makeKey_4(str) + makeKey_7(str)).substr(2, 24)
    }

    function makeKey_368(str) {
        return hex_md5(makeKey_14(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_369(str) {
        return hex_md5(makeKey_15(str) + makeKey_18(str)).substr(4, 24)
    }

    function makeKey_370(str) {
        return hex_md5(makeKey_16(str) + makeKey_19(str)).substr(1, 24)
    }

    function makeKey_371(str) {
        return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(3, 24)
    }

    function makeKey_372(str) {
        return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(1, 24)
    }

    function makeKey_373(str) {
        return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(2, 24)
    }

    function makeKey_374(str) {
        return hex_md5(makeKey_19(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_375(str) {
        return hex_md5(makeKey_0(str) + makeKey_18(str)).substr(4, 24)
    }

    function makeKey_376(str) {
        return hex_md5(makeKey_1(str) + makeKey_19(str)).substr(3, 24)
    }

    function makeKey_377(str) {
        return hex_md5(makeKey_4(str) + makeKey_0(str)).substr(4, 24)
    }

    function makeKey_378(str) {
        return hex_md5(makeKey_5(str) + makeKey_1(str)).substr(4, 24)
    }

    function makeKey_379(str) {
        return hex_md5(makeKey_3(str) + makeKey_4(str)).substr(1, 24)
    }

    function makeKey_380(str) {
        return hex_md5(makeKey_7(str) + makeKey_9(str)).substr(2, 24)
    }

    function makeKey_381(str) {
        return hex_md5(makeKey_17(str) + makeKey_10(str)).substr(3, 24)
    }

    function makeKey_382(str) {
        return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(4, 24)
    }

    function makeKey_383(str) {
        return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(1, 24)
    }

    function makeKey_384(str) {
        return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(2, 24)
    }

    function makeKey_385(str) {
        return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(3, 24)
    }

    function makeKey_386(str) {
        return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(4, 24)
    }

    function makeKey_387(str) {
        return hex_md5(makeKey_17(str) + makeKey_1(str)).substr(2, 24)
    }

    function makeKey_388(str) {
        return hex_md5(makeKey_18(str) + makeKey_4(str)).substr(3, 24)
    }

    function makeKey_389(str) {
        return hex_md5(makeKey_19(str) + makeKey_7(str)).substr(1, 24)
    }

    function makeKey_390(str) {
        return hex_md5(makeKey_0(str) + makeKey_17(str)).substr(2, 24)
    }

    function makeKey_391(str) {
        return hex_md5(makeKey_1(str) + makeKey_18(str)).substr(3, 24)
    }

    function makeKey_392(str) {
        return hex_md5(makeKey_4(str) + makeKey_19(str)).substr(4, 24)
    }

    function makeKey_393(str) {
        return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(1, 24)
    }

    function makeKey_394(str) {
        return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(2, 24)
    }

    function makeKey_395(str) {
        return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(3, 24)
    }

    function makeKey_396(str) {
        return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(4, 24)
    }

    function makeKey_397(str) {
        return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(1, 24)
    }

    function makeKey_398(str) {
        return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(3, 24)
    }

    function makeKey_399(str) {
        return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(1, 24)
    }


// ********************第七段代码的解密结果**********************//

    var cookie = getCookie('vjkl5');
    var arrFun = [makeKey_0, makeKey_1, makeKey_2, makeKey_3, makeKey_4, makeKey_5, makeKey_6, makeKey_7, makeKey_8, makeKey_9, makeKey_10, makeKey_11, makeKey_12, makeKey_13, makeKey_14, makeKey_15, makeKey_16, makeKey_17, makeKey_18, makeKey_19, makeKey_20, makeKey_21, makeKey_22, makeKey_23, makeKey_24, makeKey_25, makeKey_26, makeKey_27, makeKey_28, makeKey_29, makeKey_30, makeKey_31, makeKey_32, makeKey_33, makeKey_34, makeKey_35, makeKey_36, makeKey_37, makeKey_38, makeKey_39, makeKey_40, makeKey_41, makeKey_42, makeKey_43, makeKey_44, makeKey_45, makeKey_46, makeKey_47, makeKey_48, makeKey_49, makeKey_50, makeKey_51, makeKey_52, makeKey_53, makeKey_54, makeKey_55, makeKey_56, makeKey_57, makeKey_58, makeKey_59, makeKey_60, makeKey_61, makeKey_62, makeKey_63, makeKey_64, makeKey_65, makeKey_66, makeKey_67, makeKey_68, makeKey_69, makeKey_70, makeKey_71, makeKey_72, makeKey_73, makeKey_74, makeKey_75, makeKey_76, makeKey_77, makeKey_78, makeKey_79, makeKey_80, makeKey_81, makeKey_82, makeKey_83, makeKey_84, makeKey_85, makeKey_86, makeKey_87, makeKey_88, makeKey_89, makeKey_90, makeKey_91, makeKey_92, makeKey_93, makeKey_94, makeKey_95, makeKey_96, makeKey_97, makeKey_98, makeKey_99, makeKey_100, makeKey_101, makeKey_102, makeKey_103, makeKey_104, makeKey_105, makeKey_106, makeKey_107, makeKey_108, makeKey_109, makeKey_110, makeKey_111, makeKey_112, makeKey_113, makeKey_114, makeKey_115, makeKey_116, makeKey_117, makeKey_118, makeKey_119, makeKey_120, makeKey_121, makeKey_122, makeKey_123, makeKey_124, makeKey_125, makeKey_126, makeKey_127, makeKey_128, makeKey_129, makeKey_130, makeKey_131, makeKey_132, makeKey_133, makeKey_134, makeKey_135, makeKey_136, makeKey_137, makeKey_138, makeKey_139, makeKey_140, makeKey_141, makeKey_142, makeKey_143, makeKey_144, makeKey_145, makeKey_146, makeKey_147, makeKey_148, makeKey_149, makeKey_150, makeKey_151, makeKey_152, makeKey_153, makeKey_154, makeKey_155, makeKey_156, makeKey_157, makeKey_158, makeKey_159, makeKey_160, makeKey_161, makeKey_162, makeKey_163, makeKey_164, makeKey_165, makeKey_166, makeKey_167, makeKey_168, makeKey_169, makeKey_170, makeKey_171, makeKey_172, makeKey_173, makeKey_174, makeKey_175, makeKey_176, makeKey_177, makeKey_178, makeKey_179, makeKey_180, makeKey_181, makeKey_182, makeKey_183, makeKey_184, makeKey_185, makeKey_186, makeKey_187, makeKey_188, makeKey_189, makeKey_190, makeKey_191, makeKey_192, makeKey_193, makeKey_194, makeKey_195, makeKey_196, makeKey_197, makeKey_198, makeKey_199, makeKey_200, makeKey_201, makeKey_202, makeKey_203, makeKey_204, makeKey_205, makeKey_206, makeKey_207, makeKey_208, makeKey_209, makeKey_210, makeKey_211, makeKey_212, makeKey_213, makeKey_214, makeKey_215, makeKey_216, makeKey_217, makeKey_218, makeKey_219, makeKey_220, makeKey_221, makeKey_222, makeKey_223, makeKey_224, makeKey_225, makeKey_226, makeKey_227, makeKey_228, makeKey_229, makeKey_230, makeKey_231, makeKey_232, makeKey_233, makeKey_234, makeKey_235, makeKey_236, makeKey_237, makeKey_238, makeKey_239, makeKey_240, makeKey_241, makeKey_242, makeKey_243, makeKey_244, makeKey_245, makeKey_246, makeKey_247, makeKey_248, makeKey_249, makeKey_250, makeKey_251, makeKey_252, makeKey_253, makeKey_254, makeKey_255, makeKey_256, makeKey_257, makeKey_258, makeKey_259, makeKey_260, makeKey_261, makeKey_262, makeKey_263, makeKey_264, makeKey_265, makeKey_266, makeKey_267, makeKey_268, makeKey_269, makeKey_270, makeKey_271, makeKey_272, makeKey_273, makeKey_274, makeKey_275, makeKey_276, makeKey_277, makeKey_278, makeKey_279, makeKey_280, makeKey_281, makeKey_282, makeKey_283, makeKey_284, makeKey_285, makeKey_286, makeKey_287, makeKey_288, makeKey_289, makeKey_290, makeKey_291, makeKey_292, makeKey_293, makeKey_294, makeKey_295, makeKey_296, makeKey_297, makeKey_298, makeKey_299, makeKey_300, makeKey_301, makeKey_302, makeKey_303, makeKey_304, makeKey_305, makeKey_306, makeKey_307, makeKey_308, makeKey_309, makeKey_310, makeKey_311, makeKey_312, makeKey_313, makeKey_314, makeKey_315, makeKey_316, makeKey_317, makeKey_318, makeKey_319, makeKey_320, makeKey_321, makeKey_322, makeKey_323, makeKey_324, makeKey_325, makeKey_326, makeKey_327, makeKey_328, makeKey_329, makeKey_330, makeKey_331, makeKey_332, makeKey_333, makeKey_334, makeKey_335, makeKey_336, makeKey_337, makeKey_338, makeKey_339, makeKey_340, makeKey_341, makeKey_342, makeKey_343, makeKey_344, makeKey_345, makeKey_346, makeKey_347, makeKey_348, makeKey_349, makeKey_350, makeKey_351, makeKey_352, makeKey_353, makeKey_354, makeKey_355, makeKey_356, makeKey_357, makeKey_358, makeKey_359, makeKey_360, makeKey_361, makeKey_362, makeKey_363, makeKey_364, makeKey_365, makeKey_366, makeKey_367, makeKey_368, makeKey_369, makeKey_370, makeKey_371, makeKey_372, makeKey_373, makeKey_374, makeKey_375, makeKey_376, makeKey_377, makeKey_378, makeKey_379, makeKey_380, makeKey_381, makeKey_382, makeKey_383, makeKey_384, makeKey_385, makeKey_386, makeKey_387, makeKey_388, makeKey_389, makeKey_390, makeKey_391, makeKey_392, makeKey_393, makeKey_394, makeKey_395, makeKey_396, makeKey_397, makeKey_398, makeKey_399];
    var funIndex = strToLong(cookie) % arrFun.length;
    var fun = arrFun[funIndex];
    var result = fun(cookie);

//不要忘记了加上result的代码
    return result
}

至此,getKey()函数就解出来了。

 

3、测试js文件

那么,到底这个getKey()能否直接得到 参数:vl5x 呢?这时候就要测试一下了。

我得方法是用python调用这个js文件,看是否报错。当然有的人直接在nodejs中跑js代码更好,但是我还不会这么玩。等我学会了,再补上来操作方法。

那么来看,用python调用后,报错如下:

找到解析的代码,发现里面有一行:

var cookie = getCookie('vjkl5');

意思是:拿到服务器返回的cookie中的”vjkl5“字段的值。

因此我们要修改getKey()函数,让他能接受一个参数cookie。即函数头为

function getKey(cookie) 

既然getCookie()函数没有找到,说明它没在getKey()函数中,但是在别的地方,就像我们解密时用的de()函数、_fxxx()函数,在别的地方有定义。

那么怎么寻找?   我想你们比我还会找了,  emmm...    ctrl+c、 ctrl+f、 ctrl+v 嘛。

最终在 Lawyee.CPWSW.Common.js这文件中找到了getCookie()函数的定义,如下。把它粘贴到getKey()函数里面即可使用了

function getCookie(name) {
    var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
    if (arr = document.cookie.match(reg)) {
        return unescape(arr[2])
    } else {
        return null
    }
}

继续运行,发现document没定义,然后又去找document,一找不得了啊,document.cookie这个变量的生成又出现很多没出现过的变量及函数。要找全还是要费点力气,感兴趣的朋友可以尝试。我们这里用一个投机取巧的方式。

观察到var cookie = getCookie('vjkl5'); 明白他的意思,就是像要cookie里面的'vjkl5'对应的值嘛。取了这个值传给getKey()不就完事了,也不用什么getCookie函数了。但是注意,这是能看出意义的,如果不能看出意义,只能老实的去找出来getCookie()函数以及他的依赖。

ok,这个时候我们将getkey()写成如下。

function getKey(vjkl5) 

然后在调用getKey()之前,将vjkl5的值给取出来,传给getKey()就好了

vjkl5 = response.headers.getlist('Set-Cookie')[0].decode().split(';')[0].split('=')[1]  
#从Set-Cookie中取出vjkl5的表达式

然后继续调用js,修改其代码,缺啥补啥呗。因为你是脱离开原文件系统运行getKey()函数,getKey()一些外部调用必定没有了,因此需要根据错误提示挨个找出他们,并填写到getKey()中。

运行中,报错有如下(部分报错,其他的自己去补把),挨个补上就行了。要点: ctrl+c、 ctrl+f、 ctrl+v 嘛。 哈哈哈哈

ok,提供最后的get_vl5x.js的代码

function getKey(vjkl5_str) {

// ********************getKey()所依赖函数及变量**********************//
// **********************通过报错提示依次找到************************//
    var chrsz   = 8;  /* bits per input character. 8 - ASCII; 16 - Unicode      */
    var hexcase = 0;  /* hex output format. 0 - lowercase; 1 - uppercase        */

    function md5_ii(a, b, c, d, x, s, t)
    {
      return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
    }

    function md5_hh(a, b, c, d, x, s, t)
    {
      return md5_cmn(b ^ c ^ d, a, b, x, s, t);
    }

    function md5_gg(a, b, c, d, x, s, t)
    {
      return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
    }

    function bit_rol(num, cnt)
    {
      return (num << cnt) | (num >>> (32 - cnt));
    }

    function safe_add(x, y)
    {
      var lsw = (x & 0xFFFF) + (y & 0xFFFF);
      var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
      return (msw << 16) | (lsw & 0xFFFF);
    }

    function md5_cmn(q, a, b, x, s, t)
    {
      return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
    }

    function md5_ff(a, b, c, d, x, s, t)
    {
      return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
    }

    function str2binl(str)
    {
      var bin = Array();
      var mask = (1 << chrsz) - 1;
      for(var i = 0; i < str.length * chrsz; i += chrsz)
        bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);
      return bin;
    }

    function core_md5(x, len)
    {
      /* append padding */
      x[len >> 5] |= 0x80 << ((len) % 32);
      x[(((len + 64) >>> 9) << 4) + 14] = len;

      var a =  1732584193;
      var b = -271733879;
      var c = -1732584194;
      var d =  271733878;

      for(var i = 0; i < x.length; i += 16)
      {
        var olda = a;
        var oldb = b;
        var oldc = c;
        var oldd = d;

        a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);
        d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);
        c = md5_ff(c, d, a, b, x[i+ 2], 17,  606105819);
        b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);
        a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);
        d = md5_ff(d, a, b, c, x[i+ 5], 12,  1200080426);
        c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);
        b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);
        a = md5_ff(a, b, c, d, x[i+ 8], 7 ,  1770035416);
        d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);
        c = md5_ff(c, d, a, b, x[i+10], 17, -42063);
        b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);
        a = md5_ff(a, b, c, d, x[i+12], 7 ,  1804603682);
        d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);
        c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);
        b = md5_ff(b, c, d, a, x[i+15], 22,  1236535329);

        a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);
        d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
        c = md5_gg(c, d, a, b, x[i+11], 14,  643717713);
        b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);
        a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);
        d = md5_gg(d, a, b, c, x[i+10], 9 ,  38016083);
        c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);
        b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);
        a = md5_gg(a, b, c, d, x[i+ 9], 5 ,  568446438);
        d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);
        c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);
        b = md5_gg(b, c, d, a, x[i+ 8], 20,  1163531501);
        a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);
        d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);
        c = md5_gg(c, d, a, b, x[i+ 7], 14,  1735328473);
        b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);

        a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);
        d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);
        c = md5_hh(c, d, a, b, x[i+11], 16,  1839030562);
        b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);
        a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
        d = md5_hh(d, a, b, c, x[i+ 4], 11,  1272893353);
        c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);
        b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);
        a = md5_hh(a, b, c, d, x[i+13], 4 ,  681279174);
        d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);
        c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);
        b = md5_hh(b, c, d, a, x[i+ 6], 23,  76029189);
        a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);
        d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);
        c = md5_hh(c, d, a, b, x[i+15], 16,  530742520);
        b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);

        a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);
        d = md5_ii(d, a, b, c, x[i+ 7], 10,  1126891415);
        c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);
        b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);
        a = md5_ii(a, b, c, d, x[i+12], 6 ,  1700485571);
        d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);
        c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);
        b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);
        a = md5_ii(a, b, c, d, x[i+ 8], 6 ,  1873313359);
        d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);
        c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);
        b = md5_ii(b, c, d, a, x[i+13], 21,  1309151649);
        a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);
        d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);
        c = md5_ii(c, d, a, b, x[i+ 2], 15,  718787259);
        b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);

        a = safe_add(a, olda);
        b = safe_add(b, oldb);
        c = safe_add(c, oldc);
        d = safe_add(d, oldd);
      }
      return Array(a, b, c, d);

    }


    function binl2hex(binarray)
    {
      var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
      var str = "";
      for(var i = 0; i < binarray.length * 4; i++)
      {
        str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
               hex_tab.charAt((binarray[i>>2] >> ((i%4)*8  )) & 0xF);
      }
      return str;
    }

    function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}

    function Base64() {

    // private property
    _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

    // public method for encoding
    this.encode = function (input) {
        var output = "";
        var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
        var i = 0;
        input = _utf8_encode(input);
        while (i < input.length) {
            chr1 = input.charCodeAt(i++);
            chr2 = input.charCodeAt(i++);
            chr3 = input.charCodeAt(i++);
            enc1 = chr1 >> 2;
            enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
            enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
            enc4 = chr3 & 63;
            if (isNaN(chr2)) {
                enc3 = enc4 = 64;
            } else if (isNaN(chr3)) {
                enc4 = 64;
            }
            output = output +
            _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +
            _keyStr.charAt(enc3) + _keyStr.charAt(enc4);
        }
        return output;
    }


    // public method for decoding
    this.decode = function (input) {
        var output = "";
        var chr1, chr2, chr3;
        var enc1, enc2, enc3, enc4;
        var i = 0;
        input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
        while (i < input.length) {
            enc1 = _keyStr.indexOf(input.charAt(i++));
            enc2 = _keyStr.indexOf(input.charAt(i++));
            enc3 = _keyStr.indexOf(input.charAt(i++));
            enc4 = _keyStr.indexOf(input.charAt(i++));
            chr1 = (enc1 << 2) | (enc2 >> 4);
            chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
            chr3 = ((enc3 & 3) << 6) | enc4;
            output = output + String.fromCharCode(chr1);
            if (enc3 != 64) {
                output = output + String.fromCharCode(chr2);
            }
            if (enc4 != 64) {
                output = output + String.fromCharCode(chr3);
            }
        }
        output = _utf8_decode(output);
        return output;
    }

    // private method for UTF-8 encoding
    _utf8_encode = function (string) {
        string = string.replace(/\r\n/g,"\n");
        var utftext = "";
        for (var n = 0; n < string.length; n++) {
            var c = string.charCodeAt(n);
            if (c < 128) {
                utftext += String.fromCharCode(c);
            } else if((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            } else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }

        }
        return utftext;
    }

    // private method for UTF-8 decoding
    _utf8_decode = function (utftext) {
        var string = "";
        var i = 0;
        var c = c1 = c2 = 0;
        while ( i < utftext.length ) {
            c = utftext.charCodeAt(i);
            if (c < 128) {
                string += String.fromCharCode(c);
                i++;
            } else if((c > 191) && (c < 224)) {
                c2 = utftext.charCodeAt(i+1);
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                i += 2;
            } else {
                c2 = utftext.charCodeAt(i+1);
                c3 = utftext.charCodeAt(i+2);
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                i += 3;
            }
        }
        return string;
    }
}
// ********************第一段代码的解密结果**********************//
    function strToLong(str) {
        var long = 0;
        for (var i = 0; i < str.length; i++) {
            long += (str.charCodeAt(i) << (i % 16))
        }
        return long
    }

    function strToLongEn(str) {
        var long = 0;
        for (var i = 0; i < str.length; i++) {
            long += (str.charCodeAt(i) << (i % 16)) + i
        }
        return long
    }

    function strToLongEn2(str, step) {
        var long = 0;
        for (var i = 0; i < str.length; i++) {
            long += (str.charCodeAt(i) << (i % 16)) + (i * step)
        }
        return long
    }

    function strToLongEn3(str, step) {
        var long = 0;
        for (var i = 0; i < str.length; i++) {
            long += (str.charCodeAt(i) << (i % 16)) + (i + step - str.charCodeAt(i))
        }
        return long
    }

    function makeKey_0(str) {
        var str = str.substr(5, 5 * 5) + str.substr((5 + 1) * (5 + 1), 3);
        var a = str.substr(5) + str.substr(-4);
        var b = str.substr(4) + a.substr(-6);
        return hex_md5(str).substr(4, 24)
    }

    function makeKey_1(str) {
        var str = str.substr(5, 5 * 5) + "5" + str.substr(1, 2) + "1" + str.substr((5 + 1) * (5 + 1), 3);
        var a = str.substr(5) + str.substr(4);
        var b = str.substr(12) + a.substr(-6);
        var c = str.substr(4) + a.substr(6);
        return hex_md5(c).substr(4, 24)
    }

    function makeKey_2(str) {
        var str = str.substr(5, 5 * 5) + "15" + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3);
        var a = strToLong(str.substr(5)) + str.substr(4);
        var b = strToLong(str.substr(5)) + str.substr(4);
        var c = str.substr(4) + b.substr(5);
        return hex_md5(c).substr(1, 24)
    }

    function makeKey_3(str) {
        var str = str.substr(5, 5 * 5) + "15" + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3);
        var a = strToLongEn(str.substr(5)) + str.substr(4);
        var b = str.substr(4) + a.substr(5);
        var c = strToLong(str.substr(5)) + str.substr(4);
        return hex_md5(b).substr(3, 24)
    }

    function makeKey_4(str) {
        var str = str.substr(5, 5 * 5) + "2" + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3);
        var long = 0;
        for (var i = 0; i < str.substr(1).length; i++) {
            long += (str.charCodeAt(i) << (i % 16))
        }
        var aa = long + str.substr(4);
        var long = 0;
        var a = str.substr(5);
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 16)) + i
        }
        a = long + "" + str.substr(4);
        var b = hex_md5(str.substr(1)) + strToLong(a.substr(5));
        return hex_md5(b).substr(3, 24)
    }

    function makeKey_5(str) {
        var base = new Base64();
        var str = base.encode(str.substr(5, 5 * 5) + str.substr(1, 2) + "1") + str.substr((5 + 1) * (5 + 1), 3);
        var a = strToLongEn(str.substr(4, 10)) + str.substr(-4);
        var b = hex_md5(str.substr(4)) + a.substr(2);
        var a = str.substr(3);
        var c = strToLong(str.substr(5)) + str.substr(4);
        var aa = long + str.substr(4);
        var long = 0;
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 12)) + i
        }
        a = long + "" + str.substr(4);
        return hex_md5(str).substr(4, 24)
    }


// ********************第二段代码的解密结果**********************//
    function makeKey_6(str) {
        var base = new Base64();
        var str = str.substr(5, 5 * 5) + str.substr((5 + 1) * (5 + 1), 3);
        var a = base.encode(str.substr(4, 10)) + str.substr(2);
        var b = str.substr(6) + a.substr(2);
        var c = strToLong(str.substr(5)) + str.substr(4);
        var aa = long + str.substr(4);
        var long = 0;
        var a = str.substr(5);
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 16)) + i
        }
        a = long + "" + str.substr(4);
        return hex_md5(b).substr(2, 24)
    }

    function makeKey_7(str) {
        var base = new Base64();
        var str = base.encode(str.substr(5, 5 * 4) + "55" + str.substr(1, 2)) + str.substr((5 + 1) * (5 + 1), 3);
        var long = 0;
        for (var i = 0; i < str.substr(1).length; i++) {
            long += (str.charCodeAt(i) << (i % 16 + 5)) + 3 + 5
        }
        var aa = long + str.substr(4);
        var long = 0;
        var a = str.substr(5);
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 16))
        }
        a = long + "" + str.substr(4);
        var b = hex_md5(str.substr(1)) + strToLong(a.substr(5));
        return hex_md5(b).substr(3, 24)
    }

    function makeKey_8(str) {
        var base = new Base64();
        var str = base.encode(str.substr(5, 5 * 5 - 1) + "5" + "-" + "5") + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3);
        var long = 0;
        for (var i = 0; i < str.substr(1).length; i++) {
            long += (str.charCodeAt(i) << (i % 16))
        }
        var aa = long + str.substr(4);
        var long = 0;
        var a = str.substr(5);
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 16))
        }
        a = long + "" + str.substr(4);
        var b = hex_md5(str.substr(1)) + strToLongEn(a.substr(5));
        return hex_md5(b).substr(4, 24)
    }

    function makeKey_9(str) {
        var str = str.substr(5, 5 * 5) + "5" + str.substr(1, 2) + "1" + str.substr((5 + 1) * (5 + 1), 3);
        var a = str.substr(5) + str.substr(4);
        var b = str.substr(12) + a.substr(-6);
        var c = hex_sha1(str.substr(4)) + a.substr(6);
        return hex_md5(c).substr(4, 24)
    }

    function makeKey_10(str) {
        var base = new Base64();
        var str = base.encode(str.substr(5, 5 * 5 - 1) + "5") + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3);
        var long = 0;
        for (var i = 0; i < str.substr(1).length; i++) {
            long += (str.charCodeAt(i) << (i % 16))
        }
        var aa = long + str.substr(4);
        var long = 0;
        var a = str.substr(5);
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 16))
        }
        a = long + "" + str.substr(4);
        var b = hex_md5(str.substr(1)) + hex_sha1(a.substr(5));
        return hex_md5(b).substr(4, 24)
    }

    function makeKey_11(str) {
        var base = new Base64();
        var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3);
        var long = 0;
        for (var i = 0; i < str.substr(1).length; i++) {
            long += (str.charCodeAt(i) << (i % 16))
        }
        var aa = long + str.substr(4);
        var long = 0;
        var a = str.substr(5);
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 16))
        }
        a = long + "" + str.substr(2);
        var b = str.substr(1) + hex_sha1(a.substr(5));
        return hex_md5(b).substr(2, 24)
    }

    function makeKey_12(str) {
        var base = new Base64();
        var str = str.substr(5, 5 * 5 - 1) + str.substr((5 + 1) * (5 + 1), 3) + "2" + str.substr(1, 2);
        var long = 0;
        for (var i = 0; i < str.substr(1).length; i++) {
            long += (str.charCodeAt(i) << (i % 16))
        }
        var aa = long + str.substr(4);
        var long = 0;
        var a = str.substr(5);
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 16))
        }
        a = long + "" + str.substr(2);
        var b = str.substr(1) + hex_sha1(str.substr(5));
        return hex_md5(b).substr(1, 24)
    }

    function makeKey_13(str) {
        var base = new Base64();
        var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2);
        var long = 0;
        for (var i = 0; i < str.substr(1).length; i++) {
            long += (str.charCodeAt(i) << (i % 16))
        }
        var aa = long + str.substr(4);
        var long = 0;
        var a = str.substr(5);
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 16))
        }
        a = long + "" + str.substr(2);
        var b = base.encode(str.substr(1) + hex_sha1(str.substr(5)));
        return hex_md5(b).substr(1, 24)
    }

    function makeKey_14(str) {
        var base = new Base64();
        var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2);
        var long = 0;
        for (var i = 0; i < str.substr(1).length; i++) {
            long += (str.charCodeAt(i) << (i % 16))
        }
        var aa = long + str.substr(4);
        var long = 0;
        var a = str.substr(5);
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 16))
        }
        a = long + "" + str.substr(2);
        var b = base.encode(str.substr(1) + str.substr(5) + str.substr(1, 3));
        return hex_sha1(b).substr(1, 24)
    }

    function makeKey_15(str) {
        var base = new Base64();
        var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2);
        var long = 0;
        for (var i = 0; i < str.substr(1).length; i++) {
            long += (str.charCodeAt(i) << (i % 16))
        }
        var aa = long + str.substr(4);
        var long = 0;
        var a = str.substr(5);
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 16))
        }
        a = long + "" + str.substr(2);
        var b = base.encode(a.substr(1) + str.substr(5) + str.substr(2, 3));
        return hex_sha1(b).substr(1, 24)
    }

    function makeKey_16(str) {
        var base = new Base64();
        var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2) + "-" + "5";
        var long = 0;
        for (var i = 0; i < str.substr(1).length; i++) {
            long += (str.charCodeAt(i) << (i % 11))
        }
        var aa = long + str.substr(4);
        var long = 0;
        var a = str.substr(5);
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 16)) + i
        }
        a = long + "" + str.substr(2);
        var b = base.encode(a.substr(1)) + strToLongEn2(str.substr(5), 5) + str.substr(2, 3);
        return hex_md5(b).substr(2, 24)
    }

    function makeKey_17(str) {
        var base = new Base64();
        var str = str.substr(5, 5 * 5 - 1) + "7" + str.substr(1, 2) + "-" + "5";
        var long = 0;
        for (var i = 0; i < str.substr(1).length; i++) {
            long += (str.charCodeAt(i) << (i % 11))
        }
        var aa = long + str.substr(4);
        var long = 0;
        var a = str.substr(5);
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 16)) + i
        }
        a = long + "" + str.substr(2);
        var b = base.encode(a.substr(1)) + strToLongEn2(str.substr(5), 5 + 1) + str.substr(2 + 5, 3);
        return hex_md5(b).substr(0, 24)
    }

    function makeKey_18(str) {
        var base = new Base64();
        var str = str.substr(5, 5 * 5 - 1) + "7" + str.substr(1, 2) + "5" + str.substr(2 + 5, 3);
        var long = 0;
        for (var i = 0; i < str.substr(1).length; i++) {
            long += (str.charCodeAt(i) << (i % 11))
        }
        var aa = long + str.substr(4);
        var long = 0;
        var a = str.substr(5);
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 16)) + i
        }
        a = long + "" + str.substr(2);
        var b = a.substr(1) + strToLongEn2(str.substr(5), 5 + 1) + str.substr(2 + 5, 3);
        return hex_md5(b).substr(0, 24)
    }

    function makeKey_19(str) {
        var base = new Base64();
        var str = str.substr(5, 5 * 5 - 1) + "7" + str.substr(5, 2) + "5" + str.substr(2 + 5, 3);
        var long = 0;
        for (var i = 0; i < str.substr(1).length; i++) {
            long += (str.charCodeAt(i) << (i % 11))
        }
        var aa = long + str.substr(4);
        var long = 0;
        var a = str.substr(5);
        for (var i = 0; i < a.length; i++) {
            long += (a.charCodeAt(i) << (i % 16)) + i
        }
        a = long + "" + str.substr(2);
        var b = a.substr(1) + strToLongEn3(str.substr(5), 5 - 1) + str.substr(2 + 5, 3);
        return hex_md5(b).substr(0, 24)
    }

    function makeKey_20(str) {
        return hex_md5(makeKey_10(str) + makeKey_5(str)).substr(1, 24)
    }


// ********************第三段代码的解密结果**********************//
    function makeKey_21(str) {
        return hex_md5(makeKey_11(str) + makeKey_3(str)).substr(2, 24)
    }

    function makeKey_22(str) {
        return hex_md5(makeKey_14(str) + makeKey_19(str)).substr(3, 24)
    }

    function makeKey_23(str) {
        return hex_md5(makeKey_15(str) + makeKey_0(str)).substr(4, 24)
    }

    function makeKey_24(str) {
        return hex_md5(makeKey_16(str) + makeKey_1(str)).substr(1, 24)
    }

    function makeKey_25(str) {
        return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(2, 24)
    }

    function makeKey_26(str) {
        return hex_md5(makeKey_10(str) + makeKey_5(str)).substr(3, 24)
    }

    function makeKey_27(str) {
        return hex_md5(makeKey_17(str) + makeKey_3(str)).substr(4, 24)
    }

    function makeKey_28(str) {
        return hex_md5(makeKey_18(str) + makeKey_7(str)).substr(1, 24)
    }

    function makeKey_29(str) {
        return hex_md5(makeKey_19(str) + makeKey_3(str)).substr(2, 24)
    }

    function makeKey_30(str) {
        return hex_md5(makeKey_0(str) + makeKey_7(str)).substr(3, 24)
    }

    function makeKey_31(str) {
        return hex_md5(makeKey_1(str) + makeKey_8(str)).substr(4, 24)
    }

    function makeKey_32(str) {
        return hex_md5(makeKey_4(str) + makeKey_14(str)).substr(3, 24)
    }

    function makeKey_33(str) {
        return hex_md5(makeKey_5(str) + makeKey_15(str)).substr(4, 24)
    }

    function makeKey_34(str) {
        return hex_md5(makeKey_3(str) + makeKey_16(str)).substr(1, 24)
    }

    function makeKey_35(str) {
        return hex_md5(makeKey_7(str) + makeKey_9(str)).substr(2, 24)
    }

    function makeKey_36(str) {
        return hex_md5(makeKey_8(str) + makeKey_10(str)).substr(3, 24)
    }

    function makeKey_37(str) {
        return hex_md5(makeKey_6(str) + makeKey_17(str)).substr(1, 24)
    }

    function makeKey_38(str) {
        return hex_md5(makeKey_12(str) + makeKey_18(str)).substr(2, 24)
    }

    function makeKey_39(str) {
        return hex_md5(makeKey_14(str) + makeKey_19(str)).substr(3, 24)
    }

    function makeKey_40(str) {
        return hex_md5(makeKey_15(str) + makeKey_0(str)).substr(4, 24)
    }

    function makeKey_41(str) {
        return hex_md5(makeKey_16(str) + makeKey_1(str)).substr(3, 24)
    }

    function makeKey_42(str) {
        return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(4, 24)
    }

    function makeKey_43(str) {
        return hex_md5(makeKey_10(str) + makeKey_5(str)).substr(1, 24)
    }

    function makeKey_44(str) {
        return hex_md5(makeKey_17(str) + makeKey_3(str)).substr(2, 24)
    }

    function makeKey_45(str) {
        return hex_md5(makeKey_18(str) + makeKey_7(str)).substr(3, 24)
    }

    function makeKey_46(str) {
        return hex_md5(makeKey_19(str) + makeKey_17(str)).substr(4, 24)
    }

    function makeKey_47(str) {
        return hex_md5(makeKey_0(str) + makeKey_18(str)).substr(1, 24)
    }

    function makeKey_48(str) {
        return hex_md5(makeKey_1(str) + makeKey_19(str)).substr(2, 24)
    }

    function makeKey_49(str) {
        return hex_md5(makeKey_4(str) + makeKey_0(str)).substr(3, 24)
    }

    function makeKey_50(str) {
        return hex_md5(makeKey_5(str) + makeKey_1(str)).substr(4, 24)
    }

    function makeKey_51(str) {
        return hex_md5(makeKey_3(str) + makeKey_4(str)).substr(1, 24)
    }

    function makeKey_52(str) {
        return hex_md5(makeKey_7(str) + makeKey_14(str)).substr(2, 24)
    }

    function makeKey_53(str) {
        return hex_md5(makeKey_12(str) + makeKey_15(str)).substr(3, 24)
    }

    function makeKey_54(str) {
        return hex_md5(makeKey_14(str) + makeKey_16(str)).substr(4, 24)
    }

    function makeKey_55(str) {
        return hex_md5(makeKey_15(str) + makeKey_9(str)).substr(3, 24)
    }

    function makeKey_56(str) {
        return hex_md5(makeKey_16(str) + makeKey_10(str)).substr(4, 24)
    }

    function makeKey_57(str) {
        return hex_md5(makeKey_9(str) + makeKey_17(str)).substr(1, 24)
    }

    function makeKey_58(str) {
        return hex_md5(makeKey_10(str) + makeKey_18(str)).substr(2, 24)
    }

    function makeKey_59(str) {
        return hex_md5(makeKey_17(str) + makeKey_19(str)).substr(3, 24)
    }

    function makeKey_60(str) {
        return hex_md5(makeKey_18(str) + makeKey_0(str)).substr(1, 24)
    }

    function makeKey_61(str) {
        return hex_md5(makeKey_19(str) + makeKey_1(str)).substr(2, 24)
    }

    function makeKey_62(str) {
        return hex_md5(makeKey_0(str) + makeKey_4(str)).substr(3, 24)
    }

    function makeKey_63(str) {
        return hex_md5(makeKey_1(str) + makeKey_19(str)).substr(4, 24)
    }

    function makeKey_64(str) {
        return hex_md5(makeKey_4(str) + makeKey_0(str)).substr(3, 24)
    }

    function makeKey_65(str) {
        return hex_md5(makeKey_14(str) + makeKey_1(str)).substr(1, 24)
    }

    function makeKey_66(str) {
        return hex_md5(makeKey_15(str) + makeKey_4(str)).substr(2, 24)
    }

    function makeKey_67(str) {
        return hex_md5(makeKey_16(str) + makeKey_5(str)).substr(3, 24)
    }

    function makeKey_68(str) {
        return hex_md5(makeKey_9(str) + makeKey_3(str)).substr(4, 24)
    }

    function makeKey_69(str) {
        return hex_md5(makeKey_10(str) + makeKey_7(str)).substr(1, 24)
    }

    function makeKey_70(str) {
        return hex_md5(makeKey_17(str) + makeKey_0(str)).substr(2, 24)
    }

    function makeKey_71(str) {
        return hex_md5(makeKey_18(str) + makeKey_1(str)).substr(3, 24)
    }

    function makeKey_72(str) {
        return hex_md5(makeKey_19(str) + makeKey_4(str)).substr(4, 24)
    }

    function makeKey_73(str) {
        return hex_md5(makeKey_0(str) + makeKey_17(str)).substr(1, 24)
    }

    function makeKey_74(str) {
        return hex_md5(makeKey_1(str) + makeKey_18(str)).substr(2, 24)
    }

    function makeKey_75(str) {
        return hex_md5(makeKey_14(str) + makeKey_19(str)).substr(3, 24)
    }

    function makeKey_76(str) {
        return hex_md5(makeKey_15(str) + makeKey_0(str)).substr(4, 24)
    }

    function makeKey_77(str) {
        return hex_md5(makeKey_16(str) + makeKey_1(str)).substr(3, 24)
    }

    function makeKey_78(str) {
        return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(4, 24)
    }

    function makeKey_79(str) {
        return hex_md5(makeKey_10(str) + makeKey_9(str)).substr(1, 24)
    }

    function makeKey_80(str) {
        return hex_md5(makeKey_17(str) + makeKey_10(str)).substr(2, 24)
    }

    function makeKey_81(str) {
        return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_82(str) {
        return hex_md5(makeKey_14(str) + makeKey_18(str)).substr(1, 24)
    }

    function makeKey_83(str) {
        return hex_md5(makeKey_15(str) + makeKey_19(str)).substr(4, 24)
    }

    function makeKey_84(str) {
        return hex_md5(makeKey_16(str) + makeKey_0(str)).substr(1, 24)
    }

    function makeKey_85(str) {
        return hex_md5(makeKey_9(str) + makeKey_1(str)).substr(2, 24)
    }

    function makeKey_86(str) {
        return hex_md5(makeKey_10(str) + makeKey_4(str)).substr(3, 24)
    }

    function makeKey_87(str) {
        return hex_md5(makeKey_14(str) + makeKey_14(str)).substr(4, 24)
    }

    function makeKey_88(str) {
        return hex_md5(makeKey_15(str) + makeKey_15(str)).substr(1, 24)
    }

    function makeKey_89(str) {
        return hex_md5(makeKey_16(str) + makeKey_16(str)).substr(2, 24)
    }

    function makeKey_90(str) {
        return hex_md5(makeKey_9(str) + makeKey_9(str)).substr(3, 24)
    }

    function makeKey_91(str) {
        return hex_md5(makeKey_10(str) + makeKey_10(str)).substr(4, 24)
    }

    function makeKey_92(str) {
        return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_93(str) {
        return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(4, 24)
    }

    function makeKey_94(str) {
        return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(1, 24)
    }

    function makeKey_95(str) {
        return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(2, 24)
    }

    function makeKey_96(str) {
        return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(3, 24)
    }

    function makeKey_97(str) {
        return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(4, 24)
    }

    function makeKey_98(str) {
        return hex_md5(makeKey_5(str) + makeKey_5(str)).substr(3, 24)
    }

    function makeKey_99(str) {
        return hex_md5(makeKey_3(str) + makeKey_3(str)).substr(4, 24)
    }

    function makeKey_100(str) {
        return hex_md5(makeKey_7(str) + makeKey_3(str)).substr(1, 24)
    }

    function makeKey_101(str) {
        return hex_md5(makeKey_10(str) + makeKey_7(str)).substr(2, 24)
    }

    function makeKey_102(str) {
        return hex_md5(makeKey_17(str) + makeKey_18(str)).substr(1, 24)
    }

    function makeKey_103(str) {
        return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(2, 24)
    }

    function makeKey_104(str) {
        return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(3, 24)
    }

    function makeKey_105(str) {
        return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(4, 24)
    }

    function makeKey_106(str) {
        return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(1, 24)
    }

    function makeKey_107(str) {
        return hex_md5(makeKey_14(str) + makeKey_14(str)).substr(2, 24)
    }

    function makeKey_108(str) {
        return hex_md5(makeKey_15(str) + makeKey_15(str)).substr(3, 24)
    }

    function makeKey_109(str) {
        return hex_md5(makeKey_16(str) + makeKey_16(str)).substr(4, 24)
    }

    function makeKey_110(str) {
        return hex_md5(makeKey_9(str) + makeKey_9(str)).substr(1, 24)
    }

    function makeKey_111(str) {
        return hex_md5(makeKey_10(str) + makeKey_10(str)).substr(2, 24)
    }

    function makeKey_112(str) {
        return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_113(str) {
        return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(4, 24)
    }

    function makeKey_114(str) {
        return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(3, 24)
    }

    function makeKey_115(str) {
        return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(4, 24)
    }

    function makeKey_116(str) {
        return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(1, 24)
    }

    function makeKey_117(str) {
        return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(2, 24)
    }

    function makeKey_118(str) {
        return hex_md5(makeKey_5(str) + makeKey_15(str)).substr(3, 24)
    }

    function makeKey_119(str) {
        return hex_md5(makeKey_3(str) + makeKey_16(str)).substr(1, 24)
    }

    function makeKey_120(str) {
        return hex_md5(makeKey_19(str) + makeKey_9(str)).substr(1, 24)
    }

    function makeKey_121(str) {
        return hex_md5(makeKey_0(str) + makeKey_10(str)).substr(2, 24)
    }

    function makeKey_122(str) {
        return hex_md5(makeKey_1(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_123(str) {
        return hex_md5(makeKey_4(str) + makeKey_18(str)).substr(4, 24)
    }

    function makeKey_124(str) {
        return hex_md5(makeKey_5(str) + makeKey_19(str)).substr(1, 24)
    }

    function makeKey_125(str) {
        return hex_md5(makeKey_3(str) + makeKey_0(str)).substr(2, 24)
    }

    function makeKey_126(str) {
        return hex_md5(makeKey_7(str) + makeKey_1(str)).substr(3, 24)
    }

    function makeKey_127(str) {
        return hex_md5(makeKey_3(str) + makeKey_4(str)).substr(4, 24)
    }

    function makeKey_128(str) {
        return hex_md5(makeKey_7(str) + makeKey_5(str)).substr(1, 24)
    }

    function makeKey_129(str) {
        return hex_md5(makeKey_8(str) + makeKey_3(str)).substr(2, 24)
    }

    function makeKey_130(str) {
        return hex_md5(makeKey_14(str) + makeKey_7(str)).substr(3, 24)
    }

    function makeKey_131(str) {
        return hex_md5(makeKey_15(str) + makeKey_10(str)).substr(4, 24)
    }

    function makeKey_132(str) {
        return hex_md5(makeKey_16(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_133(str) {
        return hex_md5(makeKey_9(str) + makeKey_18(str)).substr(4, 24)
    }

    function makeKey_134(str) {
        return hex_md5(makeKey_10(str) + makeKey_19(str)).substr(1, 24)
    }

    function makeKey_135(str) {
        return hex_md5(makeKey_17(str) + makeKey_0(str)).substr(2, 24)
    }

    function makeKey_136(str) {
        return hex_md5(makeKey_18(str) + makeKey_1(str)).substr(1, 24)
    }

    function makeKey_137(str) {
        return hex_md5(makeKey_19(str) + makeKey_14(str)).substr(2, 24)
    }

    function makeKey_138(str) {
        return hex_md5(makeKey_0(str) + makeKey_15(str)).substr(3, 24)
    }

    function makeKey_139(str) {
        return hex_md5(makeKey_1(str) + makeKey_16(str)).substr(4, 24)
    }

    function makeKey_140(str) {
        return hex_md5(makeKey_4(str) + makeKey_9(str)).substr(1, 24)
    }

    function makeKey_141(str) {
        return hex_md5(makeKey_5(str) + makeKey_10(str)).substr(2, 24)
    }

    function makeKey_142(str) {
        return hex_md5(makeKey_3(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_143(str) {
        return hex_md5(makeKey_7(str) + makeKey_18(str)).substr(4, 24)
    }

    function makeKey_144(str) {
        return hex_md5(makeKey_17(str) + makeKey_19(str)).substr(1, 24)
    }

    function makeKey_145(str) {
        return hex_md5(makeKey_18(str) + makeKey_0(str)).substr(2, 24)
    }

    function makeKey_146(str) {
        return hex_md5(makeKey_19(str) + makeKey_1(str)).substr(3, 24)
    }

    function makeKey_147(str) {
        return hex_md5(makeKey_0(str) + makeKey_4(str)).substr(4, 24)
    }

    function makeKey_148(str) {
        return hex_md5(makeKey_1(str) + makeKey_5(str)).substr(3, 24)
    }

    function makeKey_149(str) {
        return hex_md5(makeKey_4(str) + makeKey_3(str)).substr(4, 24)
    }

    function makeKey_150(str) {
        return hex_md5(makeKey_14(str) + makeKey_19(str)).substr(1, 24)
    }

    function makeKey_151(str) {
        return hex_md5(makeKey_15(str) + makeKey_0(str)).substr(2, 24)
    }

    function makeKey_152(str) {
        return hex_md5(makeKey_16(str) + makeKey_1(str)).substr(3, 24)
    }

    function makeKey_153(str) {
        return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(1, 24)
    }

    function makeKey_154(str) {
        return hex_md5(makeKey_10(str) + makeKey_5(str)).substr(1, 24)
    }

    function makeKey_155(str) {
        return hex_md5(makeKey_17(str) + makeKey_3(str)).substr(2, 24)
    }

    function makeKey_156(str) {
        return hex_md5(makeKey_18(str) + makeKey_7(str)).substr(3, 24)
    }

    function makeKey_157(str) {
        return hex_md5(makeKey_19(str) + makeKey_3(str)).substr(4, 24)
    }

    function makeKey_158(str) {
        return hex_md5(makeKey_0(str) + makeKey_7(str)).substr(1, 24)
    }

    function makeKey_159(str) {
        return hex_md5(makeKey_1(str) + makeKey_8(str)).substr(2, 24)
    }

    function makeKey_160(str) {
        return hex_md5(makeKey_4(str) + makeKey_14(str)).substr(3, 24)
    }

    function makeKey_161(str) {
        return hex_md5(makeKey_19(str) + makeKey_15(str)).substr(4, 24)
    }

    function makeKey_162(str) {
        return hex_md5(makeKey_0(str) + makeKey_16(str)).substr(1, 24)
    }

    function makeKey_163(str) {
        return hex_md5(makeKey_1(str) + makeKey_9(str)).substr(2, 24)
    }

    function makeKey_164(str) {
        return hex_md5(makeKey_4(str) + makeKey_10(str)).substr(3, 24)
    }

    function makeKey_165(str) {
        return hex_md5(makeKey_5(str) + makeKey_17(str)).substr(4, 24)
    }

    function makeKey_166(str) {
        return hex_md5(makeKey_3(str) + makeKey_18(str)).substr(3, 24)
    }

    function makeKey_167(str) {
        return hex_md5(makeKey_7(str) + makeKey_19(str)).substr(4, 24)
    }

    function makeKey_168(str) {
        return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(1, 24)
    }

    function makeKey_169(str) {
        return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(2, 24)
    }

    function makeKey_170(str) {
        return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(3, 24)
    }

    function makeKey_171(str) {
        return hex_md5(makeKey_17(str) + makeKey_5(str)).substr(1, 24)
    }

    function makeKey_172(str) {
        return hex_md5(makeKey_18(str) + makeKey_3(str)).substr(2, 24)
    }

    function makeKey_173(str) {
        return hex_md5(makeKey_19(str) + makeKey_7(str)).substr(3, 24)
    }

    function makeKey_174(str) {
        return hex_md5(makeKey_0(str) + makeKey_17(str)).substr(4, 24)
    }

    function makeKey_175(str) {
        return hex_md5(makeKey_1(str) + makeKey_18(str)).substr(1, 24)
    }

    function makeKey_176(str) {
        return hex_md5(makeKey_4(str) + makeKey_19(str)).substr(2, 24)
    }

    function makeKey_177(str) {
        return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(3, 24)
    }

    function makeKey_178(str) {
        return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(4, 24)
    }

    function makeKey_179(str) {
        return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(1, 24)
    }

    function makeKey_180(str) {
        return hex_md5(makeKey_18(str) + makeKey_14(str)).substr(3, 24)
    }

    function makeKey_181(str) {
        return hex_md5(makeKey_19(str) + makeKey_15(str)).substr(1, 24)
    }

    function makeKey_182(str) {
        return hex_md5(makeKey_0(str) + makeKey_16(str)).substr(2, 24)
    }

    function makeKey_183(str) {
        return hex_md5(makeKey_1(str) + makeKey_9(str)).substr(3, 24)
    }

    function makeKey_184(str) {
        return hex_md5(makeKey_4(str) + makeKey_10(str)).substr(4, 24)
    }

    function makeKey_185(str) {
        return hex_md5(makeKey_14(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_186(str) {
        return hex_md5(makeKey_15(str) + makeKey_18(str)).substr(4, 24)
    }

    function makeKey_187(str) {
        return hex_md5(makeKey_16(str) + makeKey_19(str)).substr(4, 24)
    }

    function makeKey_188(str) {
        return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(1, 24)
    }

    function makeKey_189(str) {
        return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(2, 24)
    }

    function makeKey_190(str) {
        return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(3, 24)
    }

    function makeKey_191(str) {
        return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(4, 24)
    }

    function makeKey_192(str) {
        return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(1, 24)
    }

    function makeKey_193(str) {
        return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(2, 24)
    }

    function makeKey_194(str) {
        return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(3, 24)
    }

    function makeKey_195(str) {
        return hex_md5(makeKey_4(str) + makeKey_14(str)).substr(4, 24)
    }

    function makeKey_196(str) {
        return hex_md5(makeKey_5(str) + makeKey_15(str)).substr(3, 24)
    }

    function makeKey_197(str) {
        return hex_md5(makeKey_3(str) + makeKey_16(str)).substr(4, 24)
    }

    function makeKey_198(str) {
        return hex_md5(makeKey_3(str) + makeKey_9(str)).substr(1, 24)
    }

    function makeKey_199(str) {
        return hex_md5(makeKey_7(str) + makeKey_1(str)).substr(2, 24)
    }

    function makeKey_200(str) {
        return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(2, 24)
    }

    function makeKey_201(str) {
        return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(3, 24)
    }

    function makeKey_202(str) {
        return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(1, 24)
    }

    function makeKey_203(str) {
        return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(2, 24)
    }

    function makeKey_204(str) {
        return hex_md5(makeKey_4(str) + makeKey_5(str)).substr(3, 24)
    }

    function makeKey_205(str) {
        return hex_md5(makeKey_14(str) + makeKey_3(str)).substr(4, 24)
    }

    function makeKey_206(str) {
        return hex_md5(makeKey_15(str) + makeKey_7(str)).substr(1, 24)
    }

    function makeKey_207(str) {
        return hex_md5(makeKey_16(str) + makeKey_17(str)).substr(2, 24)
    }

    function makeKey_208(str) {
        return hex_md5(makeKey_9(str) + makeKey_18(str)).substr(3, 24)
    }

    function makeKey_209(str) {
        return hex_md5(makeKey_10(str) + makeKey_19(str)).substr(4, 24)
    }

    function makeKey_210(str) {
        return hex_md5(makeKey_17(str) + makeKey_0(str)).substr(1, 24)
    }

    function makeKey_211(str) {
        return hex_md5(makeKey_18(str) + makeKey_1(str)).substr(3, 24)
    }

    function makeKey_212(str) {
        return hex_md5(makeKey_19(str) + makeKey_4(str)).substr(1, 24)
    }

    function makeKey_213(str) {
        return hex_md5(makeKey_0(str) + makeKey_14(str)).substr(2, 24)
    }

    function makeKey_214(str) {
        return hex_md5(makeKey_1(str) + makeKey_15(str)).substr(3, 24)
    }

    function makeKey_215(str) {
        return hex_md5(makeKey_4(str) + makeKey_16(str)).substr(4, 24)
    }

    function makeKey_216(str) {
        return hex_md5(makeKey_19(str) + makeKey_9(str)).substr(3, 24)
    }

    function makeKey_217(str) {
        return hex_md5(makeKey_0(str) + makeKey_10(str)).substr(4, 24)
    }

    function makeKey_218(str) {
        return hex_md5(makeKey_1(str) + makeKey_17(str)).substr(4, 24)
    }

    function makeKey_219(str) {
        return hex_md5(makeKey_4(str) + makeKey_18(str)).substr(1, 24)
    }

    function makeKey_220(str) {
        return hex_md5(makeKey_5(str) + makeKey_19(str)).substr(2, 24)
    }

    function makeKey_221(str) {
        return hex_md5(makeKey_3(str) + makeKey_0(str)).substr(3, 24)
    }

    function makeKey_222(str) {
        return hex_md5(makeKey_7(str) + makeKey_1(str)).substr(4, 24)
    }

    function makeKey_223(str) {
        return hex_md5(makeKey_0(str) + makeKey_4(str)).substr(1, 24)
    }

    function makeKey_224(str) {
        return hex_md5(makeKey_1(str) + makeKey_5(str)).substr(2, 24)
    }


// ********************第四段代码的解密结果**********************//
    function makeKey_225(str) {
        return hex_md5(makeKey_4(str) + makeKey_3(str)).substr(3, 24)
    }

    function makeKey_226(str) {
        return hex_md5(makeKey_17(str) + makeKey_7(str)).substr(4, 24)
    }

    function makeKey_227(str) {
        return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(2, 24)
    }

    function makeKey_228(str) {
        return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(3, 24)
    }

    function makeKey_229(str) {
        return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(1, 24)
    }

    function makeKey_230(str) {
        return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(2, 24)
    }

    function makeKey_231(str) {
        return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(3, 24)
    }

    function makeKey_232(str) {
        return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(4, 24)
    }

    function makeKey_233(str) {
        return hex_md5(makeKey_10(str) + makeKey_14(str)).substr(1, 24)
    }

    function makeKey_234(str) {
        return hex_md5(makeKey_17(str) + makeKey_15(str)).substr(2, 24)
    }

    function makeKey_235(str) {
        return hex_md5(makeKey_18(str) + makeKey_16(str)).substr(3, 24)
    }

    function makeKey_236(str) {
        return hex_md5(makeKey_19(str) + makeKey_9(str)).substr(4, 24)
    }

    function makeKey_237(str) {
        return hex_md5(makeKey_0(str) + makeKey_10(str)).substr(1, 24)
    }

    function makeKey_238(str) {
        return hex_md5(makeKey_1(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_239(str) {
        return hex_md5(makeKey_4(str) + makeKey_19(str)).substr(1, 24)
    }

    function makeKey_240(str) {
        return hex_md5(makeKey_14(str) + makeKey_0(str)).substr(2, 24)
    }

    function makeKey_241(str) {
        return hex_md5(makeKey_15(str) + makeKey_1(str)).substr(3, 24)
    }

    function makeKey_242(str) {
        return hex_md5(makeKey_16(str) + makeKey_4(str)).substr(4, 24)
    }

    function makeKey_243(str) {
        return hex_md5(makeKey_9(str) + makeKey_5(str)).substr(3, 24)
    }

    function makeKey_244(str) {
        return hex_md5(makeKey_10(str) + makeKey_3(str)).substr(4, 24)
    }

    function makeKey_245(str) {
        return hex_md5(makeKey_17(str) + makeKey_7(str)).substr(4, 24)
    }

    function makeKey_246(str) {
        return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(2, 24)
    }

    function makeKey_247(str) {
        return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(3, 24)
    }

    function makeKey_248(str) {
        return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(1, 24)
    }

    function makeKey_249(str) {
        return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(2, 24)
    }

    function makeKey_250(str) {
        return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(3, 24)
    }

    function makeKey_251(str) {
        return hex_md5(makeKey_19(str) + makeKey_4(str)).substr(4, 24)
    }

    function makeKey_252(str) {
        return hex_md5(makeKey_0(str) + makeKey_14(str)).substr(1, 24)
    }

    function makeKey_253(str) {
        return hex_md5(makeKey_1(str) + makeKey_15(str)).substr(2, 24)
    }


// ********************第五段代码的解密结果**********************//
    function makeKey_254(str) {
        return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(3, 24)
    }

    function makeKey_255(str) {
        return hex_md5(makeKey_5(str) + makeKey_14(str)).substr(4, 24)
    }

    function makeKey_256(str) {
        return hex_md5(makeKey_3(str) + makeKey_15(str)).substr(1, 24)
    }

    function makeKey_257(str) {
        return hex_md5(makeKey_7(str) + makeKey_16(str)).substr(3, 24)
    }

    function makeKey_258(str) {
        return hex_md5(makeKey_0(str) + makeKey_9(str)).substr(1, 24)
    }

    function makeKey_259(str) {
        return hex_md5(makeKey_1(str) + makeKey_10(str)).substr(2, 24)
    }

    function makeKey_260(str) {
        return hex_md5(makeKey_4(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_261(str) {
        return hex_md5(makeKey_17(str) + makeKey_18(str)).substr(4, 24)
    }

    function makeKey_262(str) {
        return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(3, 24)
    }

    function makeKey_263(str) {
        return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(4, 24)
    }

    function makeKey_264(str) {
        return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(4, 24)
    }

    function makeKey_265(str) {
        return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(1, 24)
    }

    function makeKey_266(str) {
        return hex_md5(makeKey_4(str) + makeKey_19(str)).substr(2, 24)
    }

    function makeKey_267(str) {
        return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(3, 24)
    }

    function makeKey_268(str) {
        return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(4, 24)
    }

    function makeKey_269(str) {
        return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(1, 24)
    }

    function makeKey_270(str) {
        return hex_md5(makeKey_18(str) + makeKey_14(str)).substr(2, 24)
    }

    function makeKey_271(str) {
        return hex_md5(makeKey_19(str) + makeKey_15(str)).substr(3, 24)
    }

    function makeKey_272(str) {
        return hex_md5(makeKey_0(str) + makeKey_16(str)).substr(4, 24)
    }

    function makeKey_273(str) {
        return hex_md5(makeKey_1(str) + makeKey_9(str)).substr(3, 24)
    }

    function makeKey_274(str) {
        return hex_md5(makeKey_19(str) + makeKey_1(str)).substr(4, 24)
    }

    function makeKey_275(str) {
        return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(1, 24)
    }

    function makeKey_276(str) {
        return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(2, 24)
    }

    function makeKey_277(str) {
        return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(2, 24)
    }

    function makeKey_278(str) {
        return hex_md5(makeKey_5(str) + makeKey_4(str)).substr(3, 24)
    }

    function makeKey_279(str) {
        return hex_md5(makeKey_3(str) + makeKey_5(str)).substr(1, 24)
    }

    function makeKey_280(str) {
        return hex_md5(makeKey_7(str) + makeKey_3(str)).substr(2, 24)
    }

    function makeKey_281(str) {
        return hex_md5(makeKey_17(str) + makeKey_7(str)).substr(3, 24)
    }

    function makeKey_282(str) {
        return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(4, 24)
    }

    function makeKey_283(str) {
        return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(1, 24)
    }

    function makeKey_284(str) {
        return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(2, 24)
    }

    function makeKey_285(str) {
        return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(3, 24)
    }

    function makeKey_286(str) {
        return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(4, 24)
    }

    function makeKey_287(str) {
        return hex_md5(makeKey_14(str) + makeKey_4(str)).substr(1, 24)
    }

    function makeKey_288(str) {
        return hex_md5(makeKey_15(str) + makeKey_14(str)).substr(3, 24)
    }

    function makeKey_289(str) {
        return hex_md5(makeKey_16(str) + makeKey_15(str)).substr(1, 24)
    }

    function makeKey_290(str) {
        return hex_md5(makeKey_9(str) + makeKey_16(str)).substr(2, 24)
    }

    function makeKey_291(str) {
        return hex_md5(makeKey_10(str) + makeKey_9(str)).substr(3, 24)
    }

    function makeKey_292(str) {
        return hex_md5(makeKey_17(str) + makeKey_10(str)).substr(4, 24)
    }

    function makeKey_293(str) {
        return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_294(str) {
        return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(4, 24)
    }


// ********************第六段代码的解密结果**********************//
    function makeKey_295(str) {
        return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(4, 24)
    }

    function makeKey_296(str) {
        return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(1, 24)
    }

    function makeKey_297(str) {
        return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(2, 24)
    }

    function makeKey_298(str) {
        return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(3, 24)
    }

    function makeKey_299(str) {
        return hex_md5(makeKey_5(str) + makeKey_5(str)).substr(4, 24)
    }

    function makeKey_300(str) {
        return hex_md5(makeKey_3(str) + makeKey_3(str)).substr(1, 24)
    }

    function makeKey_301(str) {
        return hex_md5(makeKey_7(str) + makeKey_7(str)).substr(2, 24)
    }

    function makeKey_302(str) {
        return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_303(str) {
        return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(4, 24)
    }

    function makeKey_304(str) {
        return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(3, 24)
    }

    function makeKey_305(str) {
        return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(4, 24)
    }

    function makeKey_306(str) {
        return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(1, 24)
    }

    function makeKey_307(str) {
        return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(2, 24)
    }

    function makeKey_308(str) {
        return hex_md5(makeKey_14(str) + makeKey_14(str)).substr(2, 24)
    }

    function makeKey_309(str) {
        return hex_md5(makeKey_15(str) + makeKey_15(str)).substr(3, 24)
    }

    function makeKey_310(str) {
        return hex_md5(makeKey_16(str) + makeKey_16(str)).substr(1, 24)
    }

    function makeKey_311(str) {
        return hex_md5(makeKey_9(str) + makeKey_9(str)).substr(2, 24)
    }

    function makeKey_312(str) {
        return hex_md5(makeKey_10(str) + makeKey_10(str)).substr(3, 24)
    }

    function makeKey_313(str) {
        return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(4, 24)
    }

    function makeKey_314(str) {
        return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(1, 24)
    }

    function makeKey_315(str) {
        return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(2, 24)
    }

    function makeKey_316(str) {
        return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(3, 24)
    }

    function makeKey_317(str) {
        return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(4, 24)
    }

    function makeKey_318(str) {
        return hex_md5(makeKey_5(str) + makeKey_5(str)).substr(1, 24)
    }

    function makeKey_319(str) {
        return hex_md5(makeKey_3(str) + makeKey_3(str)).substr(3, 24)
    }

    function makeKey_320(str) {
        return hex_md5(makeKey_7(str) + makeKey_7(str)).substr(1, 24)
    }

    function makeKey_321(str) {
        return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(2, 24)
    }

    function makeKey_322(str) {
        return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(3, 24)
    }

    function makeKey_323(str) {
        return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(4, 24)
    }

    function makeKey_324(str) {
        return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(3, 24)
    }

    function makeKey_325(str) {
        return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(4, 24)
    }

    function makeKey_326(str) {
        return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(4, 24)
    }

    function makeKey_327(str) {
        return hex_md5(makeKey_19(str) + makeKey_14(str)).substr(1, 24)
    }

    function makeKey_328(str) {
        return hex_md5(makeKey_0(str) + makeKey_15(str)).substr(2, 24)
    }

    function makeKey_329(str) {
        return hex_md5(makeKey_1(str) + makeKey_16(str)).substr(3, 24)
    }

    function makeKey_330(str) {
        return hex_md5(makeKey_4(str) + makeKey_9(str)).substr(4, 24)
    }

    function makeKey_331(str) {
        return hex_md5(makeKey_19(str) + makeKey_10(str)).substr(1, 24)
    }

    function makeKey_332(str) {
        return hex_md5(makeKey_0(str) + makeKey_17(str)).substr(2, 24)
    }

    function makeKey_333(str) {
        return hex_md5(makeKey_1(str) + makeKey_18(str)).substr(3, 24)
    }

    function makeKey_334(str) {
        return hex_md5(makeKey_4(str) + makeKey_18(str)).substr(4, 24)
    }

    function makeKey_335(str) {
        return hex_md5(makeKey_5(str) + makeKey_19(str)).substr(3, 24)
    }

    function makeKey_336(str) {
        return hex_md5(makeKey_3(str) + makeKey_0(str)).substr(4, 24)
    }

    function makeKey_337(str) {
        return hex_md5(makeKey_7(str) + makeKey_1(str)).substr(2, 24)
    }

    function makeKey_338(str) {
        return hex_md5(makeKey_0(str) + makeKey_4(str)).substr(3, 24)
    }

    function makeKey_339(str) {
        return hex_md5(makeKey_1(str) + makeKey_5(str)).substr(1, 24)
    }

    function makeKey_340(str) {
        return hex_md5(makeKey_4(str) + makeKey_3(str)).substr(2, 24)
    }

    function makeKey_341(str) {
        return hex_md5(makeKey_17(str) + makeKey_7(str)).substr(3, 24)
    }

    function makeKey_342(str) {
        return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(4, 24)
    }

    function makeKey_343(str) {
        return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(1, 24)
    }

    function makeKey_344(str) {
        return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(2, 24)
    }

    function makeKey_345(str) {
        return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(3, 24)
    }

    function makeKey_346(str) {
        return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(4, 24)
    }

    function makeKey_347(str) {
        return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(1, 24)
    }

    function makeKey_348(str) {
        return hex_md5(makeKey_10(str) + makeKey_14(str)).substr(3, 24)
    }

    function makeKey_349(str) {
        return hex_md5(makeKey_17(str) + makeKey_15(str)).substr(1, 24)
    }

    function makeKey_350(str) {
        return hex_md5(makeKey_18(str) + makeKey_16(str)).substr(2, 24)
    }

    function makeKey_351(str) {
        return hex_md5(makeKey_19(str) + makeKey_9(str)).substr(3, 24)
    }

    function makeKey_352(str) {
        return hex_md5(makeKey_0(str) + makeKey_10(str)).substr(4, 24)
    }

    function makeKey_353(str) {
        return hex_md5(makeKey_1(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_354(str) {
        return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(4, 24)
    }

    function makeKey_355(str) {
        return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(4, 24)
    }

    function makeKey_356(str) {
        return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(1, 24)
    }

    function makeKey_357(str) {
        return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(2, 24)
    }

    function makeKey_358(str) {
        return hex_md5(makeKey_4(str) + makeKey_5(str)).substr(3, 24)
    }

    function makeKey_359(str) {
        return hex_md5(makeKey_5(str) + makeKey_3(str)).substr(4, 24)
    }

    function makeKey_360(str) {
        return hex_md5(makeKey_3(str) + makeKey_7(str)).substr(2, 24)
    }

    function makeKey_361(str) {
        return hex_md5(makeKey_7(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_362(str) {
        return hex_md5(makeKey_17(str) + makeKey_18(str)).substr(1, 24)
    }

    function makeKey_363(str) {
        return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(2, 24)
    }

    function makeKey_364(str) {
        return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(3, 24)
    }

    function makeKey_365(str) {
        return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(4, 24)
    }

    function makeKey_366(str) {
        return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(1, 24)
    }

    function makeKey_367(str) {
        return hex_md5(makeKey_4(str) + makeKey_7(str)).substr(2, 24)
    }

    function makeKey_368(str) {
        return hex_md5(makeKey_14(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_369(str) {
        return hex_md5(makeKey_15(str) + makeKey_18(str)).substr(4, 24)
    }

    function makeKey_370(str) {
        return hex_md5(makeKey_16(str) + makeKey_19(str)).substr(1, 24)
    }

    function makeKey_371(str) {
        return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(3, 24)
    }

    function makeKey_372(str) {
        return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(1, 24)
    }

    function makeKey_373(str) {
        return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(2, 24)
    }

    function makeKey_374(str) {
        return hex_md5(makeKey_19(str) + makeKey_17(str)).substr(3, 24)
    }

    function makeKey_375(str) {
        return hex_md5(makeKey_0(str) + makeKey_18(str)).substr(4, 24)
    }

    function makeKey_376(str) {
        return hex_md5(makeKey_1(str) + makeKey_19(str)).substr(3, 24)
    }

    function makeKey_377(str) {
        return hex_md5(makeKey_4(str) + makeKey_0(str)).substr(4, 24)
    }

    function makeKey_378(str) {
        return hex_md5(makeKey_5(str) + makeKey_1(str)).substr(4, 24)
    }

    function makeKey_379(str) {
        return hex_md5(makeKey_3(str) + makeKey_4(str)).substr(1, 24)
    }

    function makeKey_380(str) {
        return hex_md5(makeKey_7(str) + makeKey_9(str)).substr(2, 24)
    }

    function makeKey_381(str) {
        return hex_md5(makeKey_17(str) + makeKey_10(str)).substr(3, 24)
    }

    function makeKey_382(str) {
        return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(4, 24)
    }

    function makeKey_383(str) {
        return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(1, 24)
    }

    function makeKey_384(str) {
        return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(2, 24)
    }

    function makeKey_385(str) {
        return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(3, 24)
    }

    function makeKey_386(str) {
        return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(4, 24)
    }

    function makeKey_387(str) {
        return hex_md5(makeKey_17(str) + makeKey_1(str)).substr(2, 24)
    }

    function makeKey_388(str) {
        return hex_md5(makeKey_18(str) + makeKey_4(str)).substr(3, 24)
    }

    function makeKey_389(str) {
        return hex_md5(makeKey_19(str) + makeKey_7(str)).substr(1, 24)
    }

    function makeKey_390(str) {
        return hex_md5(makeKey_0(str) + makeKey_17(str)).substr(2, 24)
    }

    function makeKey_391(str) {
        return hex_md5(makeKey_1(str) + makeKey_18(str)).substr(3, 24)
    }

    function makeKey_392(str) {
        return hex_md5(makeKey_4(str) + makeKey_19(str)).substr(4, 24)
    }

    function makeKey_393(str) {
        return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(1, 24)
    }

    function makeKey_394(str) {
        return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(2, 24)
    }

    function makeKey_395(str) {
        return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(3, 24)
    }

    function makeKey_396(str) {
        return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(4, 24)
    }

    function makeKey_397(str) {
        return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(1, 24)
    }

    function makeKey_398(str) {
        return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(3, 24)
    }

    function makeKey_399(str) {
        return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(1, 24)
    }


// ********************第七段代码的解密结果**********************//

    var cookie = vjkl5_str;
    var arrFun = [makeKey_0, makeKey_1, makeKey_2, makeKey_3, makeKey_4, makeKey_5, makeKey_6, makeKey_7, makeKey_8, makeKey_9, makeKey_10, makeKey_11, makeKey_12, makeKey_13, makeKey_14, makeKey_15, makeKey_16, makeKey_17, makeKey_18, makeKey_19, makeKey_20, makeKey_21, makeKey_22, makeKey_23, makeKey_24, makeKey_25, makeKey_26, makeKey_27, makeKey_28, makeKey_29, makeKey_30, makeKey_31, makeKey_32, makeKey_33, makeKey_34, makeKey_35, makeKey_36, makeKey_37, makeKey_38, makeKey_39, makeKey_40, makeKey_41, makeKey_42, makeKey_43, makeKey_44, makeKey_45, makeKey_46, makeKey_47, makeKey_48, makeKey_49, makeKey_50, makeKey_51, makeKey_52, makeKey_53, makeKey_54, makeKey_55, makeKey_56, makeKey_57, makeKey_58, makeKey_59, makeKey_60, makeKey_61, makeKey_62, makeKey_63, makeKey_64, makeKey_65, makeKey_66, makeKey_67, makeKey_68, makeKey_69, makeKey_70, makeKey_71, makeKey_72, makeKey_73, makeKey_74, makeKey_75, makeKey_76, makeKey_77, makeKey_78, makeKey_79, makeKey_80, makeKey_81, makeKey_82, makeKey_83, makeKey_84, makeKey_85, makeKey_86, makeKey_87, makeKey_88, makeKey_89, makeKey_90, makeKey_91, makeKey_92, makeKey_93, makeKey_94, makeKey_95, makeKey_96, makeKey_97, makeKey_98, makeKey_99, makeKey_100, makeKey_101, makeKey_102, makeKey_103, makeKey_104, makeKey_105, makeKey_106, makeKey_107, makeKey_108, makeKey_109, makeKey_110, makeKey_111, makeKey_112, makeKey_113, makeKey_114, makeKey_115, makeKey_116, makeKey_117, makeKey_118, makeKey_119, makeKey_120, makeKey_121, makeKey_122, makeKey_123, makeKey_124, makeKey_125, makeKey_126, makeKey_127, makeKey_128, makeKey_129, makeKey_130, makeKey_131, makeKey_132, makeKey_133, makeKey_134, makeKey_135, makeKey_136, makeKey_137, makeKey_138, makeKey_139, makeKey_140, makeKey_141, makeKey_142, makeKey_143, makeKey_144, makeKey_145, makeKey_146, makeKey_147, makeKey_148, makeKey_149, makeKey_150, makeKey_151, makeKey_152, makeKey_153, makeKey_154, makeKey_155, makeKey_156, makeKey_157, makeKey_158, makeKey_159, makeKey_160, makeKey_161, makeKey_162, makeKey_163, makeKey_164, makeKey_165, makeKey_166, makeKey_167, makeKey_168, makeKey_169, makeKey_170, makeKey_171, makeKey_172, makeKey_173, makeKey_174, makeKey_175, makeKey_176, makeKey_177, makeKey_178, makeKey_179, makeKey_180, makeKey_181, makeKey_182, makeKey_183, makeKey_184, makeKey_185, makeKey_186, makeKey_187, makeKey_188, makeKey_189, makeKey_190, makeKey_191, makeKey_192, makeKey_193, makeKey_194, makeKey_195, makeKey_196, makeKey_197, makeKey_198, makeKey_199, makeKey_200, makeKey_201, makeKey_202, makeKey_203, makeKey_204, makeKey_205, makeKey_206, makeKey_207, makeKey_208, makeKey_209, makeKey_210, makeKey_211, makeKey_212, makeKey_213, makeKey_214, makeKey_215, makeKey_216, makeKey_217, makeKey_218, makeKey_219, makeKey_220, makeKey_221, makeKey_222, makeKey_223, makeKey_224, makeKey_225, makeKey_226, makeKey_227, makeKey_228, makeKey_229, makeKey_230, makeKey_231, makeKey_232, makeKey_233, makeKey_234, makeKey_235, makeKey_236, makeKey_237, makeKey_238, makeKey_239, makeKey_240, makeKey_241, makeKey_242, makeKey_243, makeKey_244, makeKey_245, makeKey_246, makeKey_247, makeKey_248, makeKey_249, makeKey_250, makeKey_251, makeKey_252, makeKey_253, makeKey_254, makeKey_255, makeKey_256, makeKey_257, makeKey_258, makeKey_259, makeKey_260, makeKey_261, makeKey_262, makeKey_263, makeKey_264, makeKey_265, makeKey_266, makeKey_267, makeKey_268, makeKey_269, makeKey_270, makeKey_271, makeKey_272, makeKey_273, makeKey_274, makeKey_275, makeKey_276, makeKey_277, makeKey_278, makeKey_279, makeKey_280, makeKey_281, makeKey_282, makeKey_283, makeKey_284, makeKey_285, makeKey_286, makeKey_287, makeKey_288, makeKey_289, makeKey_290, makeKey_291, makeKey_292, makeKey_293, makeKey_294, makeKey_295, makeKey_296, makeKey_297, makeKey_298, makeKey_299, makeKey_300, makeKey_301, makeKey_302, makeKey_303, makeKey_304, makeKey_305, makeKey_306, makeKey_307, makeKey_308, makeKey_309, makeKey_310, makeKey_311, makeKey_312, makeKey_313, makeKey_314, makeKey_315, makeKey_316, makeKey_317, makeKey_318, makeKey_319, makeKey_320, makeKey_321, makeKey_322, makeKey_323, makeKey_324, makeKey_325, makeKey_326, makeKey_327, makeKey_328, makeKey_329, makeKey_330, makeKey_331, makeKey_332, makeKey_333, makeKey_334, makeKey_335, makeKey_336, makeKey_337, makeKey_338, makeKey_339, makeKey_340, makeKey_341, makeKey_342, makeKey_343, makeKey_344, makeKey_345, makeKey_346, makeKey_347, makeKey_348, makeKey_349, makeKey_350, makeKey_351, makeKey_352, makeKey_353, makeKey_354, makeKey_355, makeKey_356, makeKey_357, makeKey_358, makeKey_359, makeKey_360, makeKey_361, makeKey_362, makeKey_363, makeKey_364, makeKey_365, makeKey_366, makeKey_367, makeKey_368, makeKey_369, makeKey_370, makeKey_371, makeKey_372, makeKey_373, makeKey_374, makeKey_375, makeKey_376, makeKey_377, makeKey_378, makeKey_379, makeKey_380, makeKey_381, makeKey_382, makeKey_383, makeKey_384, makeKey_385, makeKey_386, makeKey_387, makeKey_388, makeKey_389, makeKey_390, makeKey_391, makeKey_392, makeKey_393, makeKey_394, makeKey_395, makeKey_396, makeKey_397, makeKey_398, makeKey_399];
    var funIndex = strToLong(cookie) % arrFun.length;
    var fun = arrFun[funIndex];
    var result = fun(cookie);

//不要忘记了加上result的代码
    return result
}

 

3、破解案件详情页请求参数

1、破解DocID参数

 

五、详细代码

 

六、总结知识点

 

 

 

 

你可能感兴趣的:(爬虫)