├── .idea └── vcs.xml ├── 1548066223468.jpg ├── README.md ├── encrypt.js ├── get_docid.js ├── gland_mmewmd ├── README.md ├── encrypt.js ├── github.png ├── main.go ├── test.js ├── vjkl5.js └── ywtu.js ├── log-2019.2.11.txt ├── requirements.txt ├── spider_demo.py ├── spider_demo_proxy_abuyun.py ├── vl5x.js └── ywtu.js /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /1548066223468.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sml2h3/mmewmd_crack_for_wenshu/a7cba1446474c629e9725556a3b43fa656ec622c/1548066223468.jpg -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 文书网反反爬虫SDK 2 | 3 | # 2023.06.25供应文书一手日更数据,加微信备注 文书数据 4 | 5 | ![Test](https://cdn.wenanzhe.com/img/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20230625233945.jpg!/scale/50) 6 | 7 | ## 数据矿工群:119794042 778910502(原来的大群因为有人传播谣言被封,现在转到这个群) 8 | 9 | ## 最新提示:文书网已经放弃使用瑞数,现在使用的是免费的sojson加密,sojson原作者在交流群里,欢迎大家加群。另外,由于本版本破解算法开元,瑞数已经于本年3月份更新了大部分站点算法,目前仅有小量网站可能还在使用本版本(需要自行研究修改)。本开源版仅供学习交流。欢迎业务合作加群私聊群主,不做违法站点,违规业务。拒绝做伸手党从我做起。接JS破解、验证码(图片,滑动,点选)识别业务。违法用途请勿打扰自行绕道,谢谢。 10 | 11 | ## 通知:在各位坚持不懈的努力下,文书网居然将瑞数给下了。你们太狠了呀!!!!现在文书网基本处于无防御状态,希望大家手下留情!据说可能会将瑞数更新到最新版本。 12 | 13 | ## TIP:由于近期有众多开发者将项目应用于某网站的爬虫,导致其现在无法很难像之前一样正常访问,在这里我呼吁各位请不要做违法的事情,如果用于采集数据,请保证数据用于非商业用途,否则后果自负!!另外如果您真的用于爬虫,希望尽量放慢速度,让网站正常访问,让想学习js“搞基”特性的朋友有机会进行调试学习。多说一句,大家都是程序员,程序员何必为难程序员,大家细水长流,别把某网站的程序员惹急了谢谢大家,再次感谢各位捧场的朋友,感谢某数的反爬工程师让我们认识了那么多有趣的加密方案,也感谢某书网提供的学习平台。大家新年快乐!!!~~另外提醒一下,无论是在哪个系统环境下调用,请安装nodejs~~。 14 | ## 前言 15 | 一月份的时候中国裁判文书网更新了据说是瑞数安全的js混淆动态加密。
16 | 特征1:params:MmEwMd
17 | 特征2:html:9DhefwqGPrzGxEp9hPaoag
18 | 特征3:cookies:FSSBBIl1UgzbN7N80T 19 | 20 | ## 项目 21 | 本项目为学习Js加密和向反爬虫工程师前辈们学习而立,请勿用于违法用途,用于违法用途产生的后果与本人无关,本版本仅供学习参考所用,所有下载者应于24小时内学习完毕后删除。 22 | 由于本次项目需求的朋友来自使用各个开发语言,本次sdk将会js的方式提供,各开发者可以根据自己开发语言考虑采用v8引擎执行或语言自带的执行js的函数或者是第三方包。 23 | 24 | ## 调用思路 25 | [请严格按照此思路调用,否则会出现大量remindkey或者202] 26 | 27 | ###定义: 28 | #### 完整生命周期 29 | 第一步: 30 | 必须至少进行一次二次跳转: 31 | 32 | ①第一次访问List页应当cookies中不含有F80系列cookies,此时必定202,并返回F80S和假F80T, 获得meta头 33 | 34 | ②第二次访问List页应当带上第一次访问返回的F80S和用第一次返回的假F80T生成的真F80T,此时会返回vjkl5, 获得meta头 35 | 36 | 第二步: 37 | 此时我们应当保存上一步最后请求时的真F80T,还有①中的F80S, vjkl5, ②中的meta头。 38 | 之后的每一次访问ListContent页面,都需要使用上一次访问时(在第一次访问ListContent的时候,用的是②中的真F80T)的真F80T去生成新的真F80T,且每次生成的F80T仅可使用一次后作废,作废后用于生成下一次新的真F80T。 39 | 40 | #### 爬虫生命周期理论 41 | 当遇到了任何一个接口返回码为202时,意味着一次上述的完整证明周期结束。需要重新按照上面的生命周期运行。 42 | 此处包含,访问时出现的202或者是更换了代理IP。 43 | 44 | 45 | 46 | ## 更新tip 47 | 48 | ### 2019.2.11-2 49 | 修复windows下兼容性问题,现在再也不需要nodejs啦 50 | 阿布云也可能没啥用了,所以改成通用的代理测试版本 51 | 52 | ### 2019.2.11-2 53 | 测试阿布云专业版可以获取到数据,做了一个加上代理IP的版本给大家参考,自行处理返回值为空和因代理IP其他报错问题。 54 | 注意,一定要是专业版的阿布云,别买错了!! 55 | 56 | 57 | ### 2019.2.11 58 | Python调用示例添加解密docid和获取详情页的方法。 59 | 60 | 重要提示:目前因为用本项目做采集的开发者较多,采集量非常大,导致瑞数现在开始疯狂地封IP。基本上百度上能搜到的那几家大代理商获取数据相对慢点,大户请各位自行开动脑经或者找关系找一些非公开销售的代理IP。 61 | 目前本项目依旧正常可使用,请严格按照demo的调用方式调用。 62 | 63 | 大量出现202基本肯定是封IP,400可以进行5-10次的重试。按照demo的调用流程相对比较省IP,我指的是获取到list的后直接去获取内容页数据,过往大家一般是存docid到队列。这里可以改成把获取到的未处理的数据放到队列,比较省IP。 64 | 65 | 附加2019.2.11调用结果log,可自行查看 66 | 67 | ### 2019.1.21 68 | 修复了大量可能会出现remind key和202的问题。 69 | 70 | 合并了来自@jjk13593527343开发者制作的go语言调用sdk,go开发者请前往gland_mmewmd文件夹调用 71 | 72 | ### 2019.1.20 73 | 在连续5天的奋战下,我们sdk最终版终于完成!本项目以jssdk为核心,本次发布python调用实例,敬请参考。 74 | 将在未来1-2天内发布java,go,c#的实例版本,欢迎大家star和加入我们这个有爱的数据矿工(下🈶群号)群体。 75 | 一测试:商标网已通杀可通过本sdk访问。 76 | 77 | python版:guid请自行找算法生成,否则会remind key!!(最新版已解决) 78 | 79 | 本次开发全程直播,将由"时光机"和老高两位志愿开发者将视频剪辑后发布,具体视频地址敬请期待(因某些原因暂不公开)。 80 | 虎牙直播间:17593443欢迎订阅 81 | 82 | [一个97少年的战斗史] 83 | 84 | ### 2019.1.17 85 | 这个版本加密里面工程师下的毒太多了,现在上传的是已经确定加密过程,但由于部分加密参数获取的生成方式依旧不是很全面,所以暂时无法通过瑞数的审核,带生成的参数访问页面会400错误。 86 | 不过现在可以肯定的是目前这个版本是整个MmEwMd的主要生成方式,待我整理思路把不确定的参数生成方式全部弄清楚,会给大家继续献上完整SDK。下次更新时间预计为2019.1.19之前。 87 | 88 | 请clone代码后,清空浏览器缓存打开文书网,把当前的cookies中的FSSBBIl1UgzbN7N80T参数值填写到python代码对应位置直接运行生成的就是MmEwMd参数。 89 | 关于MmEwMd:已经通过比对,确认生成的长度和规则是一致的。 90 | 91 | ## 快乐的爬虫群 92 | **QQ119794042** 93 | 94 | 95 | 96 | ### 鼓励 97 | 如果我的项目帮助到了你,可否通过打赏鼓励一下作者 98 | 99 | 100 | 101 | 102 | -------------------------------------------------------------------------------- /get_docid.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 解密DocID 3 | */ 4 | window = {}; 5 | (function (global) { 6 | 'use strict'; 7 | if (global.Base64_Zip) { 8 | //alert("1"); 9 | //return; 10 | 11 | } 12 | var version = "2.1.1"; 13 | // if node.js, we use Buffer 14 | var buffer; 15 | if (typeof module !== 'undefined' && module.exports) { 16 | buffer = require('buffer').Buffer; 17 | } 18 | // constants 19 | var b64chars 20 | = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; 21 | var b64tab = function (bin) { 22 | var t = {}; 23 | for (var i = 0, l = bin.length; i < l; i++) t[bin.charAt(i)] = i; 24 | return t; 25 | }(b64chars); 26 | var fromCharCode = String.fromCharCode; 27 | // encoder stuff 28 | var cb_utob = function (c) { 29 | if (c.length < 2) { 30 | var cc = c.charCodeAt(0); 31 | return cc < 0x80 ? c 32 | : cc < 0x800 ? (fromCharCode(0xc0 | (cc >>> 6)) 33 | + fromCharCode(0x80 | (cc & 0x3f))) 34 | : (fromCharCode(0xe0 | ((cc >>> 12) & 0x0f)) 35 | + fromCharCode(0x80 | ((cc >>> 6) & 0x3f)) 36 | + fromCharCode(0x80 | (cc & 0x3f))); 37 | } else { 38 | var cc = 0x10000 39 | + (c.charCodeAt(0) - 0xD800) * 0x400 40 | + (c.charCodeAt(1) - 0xDC00); 41 | return (fromCharCode(0xf0 | ((cc >>> 18) & 0x07)) 42 | + fromCharCode(0x80 | ((cc >>> 12) & 0x3f)) 43 | + fromCharCode(0x80 | ((cc >>> 6) & 0x3f)) 44 | + fromCharCode(0x80 | (cc & 0x3f))); 45 | } 46 | }; 47 | var re_utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g; 48 | var utob = function (u) { 49 | return u.replace(re_utob, cb_utob); 50 | }; 51 | var cb_encode = function (ccc) { 52 | var padlen = [0, 2, 1][ccc.length % 3], 53 | ord = ccc.charCodeAt(0) << 16 54 | | ((ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8) 55 | | ((ccc.length > 2 ? ccc.charCodeAt(2) : 0)), 56 | chars = [ 57 | b64chars.charAt(ord >>> 18), 58 | b64chars.charAt((ord >>> 12) & 63), 59 | padlen >= 2 ? '=' : b64chars.charAt((ord >>> 6) & 63), 60 | padlen >= 1 ? '=' : b64chars.charAt(ord & 63) 61 | ]; 62 | return chars.join(''); 63 | }; 64 | var Base64_btoa = function (b) { 65 | return b.replace(/[\s\S]{1,3}/g, cb_encode); 66 | }; 67 | var _encode = buffer 68 | ? function (u) { 69 | return (new buffer(u)).toString('base64') 70 | } 71 | : function (u) { 72 | return Base64_btoa(utob(u)) 73 | } 74 | ; 75 | var encode = function (u, urisafe) { 76 | return !urisafe 77 | ? _encode(u) 78 | : _encode(u).replace(/[+\/]/g, function (m0) { 79 | return m0 == '+' ? '-' : '_'; 80 | }).replace(/=/g, ''); 81 | }; 82 | var encodeURI = function (u) { 83 | return encode(u, true) 84 | }; 85 | // decoder stuff 86 | var re_btou = new RegExp([ 87 | '[\xC0-\xDF][\x80-\xBF]', 88 | '[\xE0-\xEF][\x80-\xBF]{2}', 89 | '[\xF0-\xF7][\x80-\xBF]{3}' 90 | ].join('|'), 'g'); 91 | var cb_btou = function (cccc) { 92 | switch (cccc.length) { 93 | case 4: 94 | var cp = ((0x07 & cccc.charCodeAt(0)) << 18) 95 | | ((0x3f & cccc.charCodeAt(1)) << 12) 96 | | ((0x3f & cccc.charCodeAt(2)) << 6) 97 | | (0x3f & cccc.charCodeAt(3)), 98 | offset = cp - 0x10000; 99 | return (fromCharCode((offset >>> 10) + 0xD800) 100 | + fromCharCode((offset & 0x3FF) + 0xDC00)); 101 | case 3: 102 | return fromCharCode( 103 | ((0x0f & cccc.charCodeAt(0)) << 12) 104 | | ((0x3f & cccc.charCodeAt(1)) << 6) 105 | | (0x3f & cccc.charCodeAt(2)) 106 | ); 107 | default: 108 | return fromCharCode( 109 | ((0x1f & cccc.charCodeAt(0)) << 6) 110 | | (0x3f & cccc.charCodeAt(1)) 111 | ); 112 | } 113 | }; 114 | var btou = function (b) { 115 | return b.replace(re_btou, cb_btou); 116 | }; 117 | var cb_decode = function (cccc) { 118 | var len = cccc.length, 119 | padlen = len % 4, 120 | n = (len > 0 ? b64tab[cccc.charAt(0)] << 18 : 0) 121 | | (len > 1 ? b64tab[cccc.charAt(1)] << 12 : 0) 122 | | (len > 2 ? b64tab[cccc.charAt(2)] << 6 : 0) 123 | | (len > 3 ? b64tab[cccc.charAt(3)] : 0), 124 | chars = [ 125 | fromCharCode(n >>> 16), 126 | fromCharCode((n >>> 8) & 0xff), 127 | fromCharCode(n & 0xff) 128 | ]; 129 | chars.length -= [0, 0, 2, 1][padlen]; 130 | return chars.join(''); 131 | }; 132 | var Base64_atob = function (a) { 133 | return a.replace(/[\s\S]{1,4}/g, cb_decode); 134 | }; 135 | var _decode = buffer 136 | ? function (a) { 137 | return (new buffer(a, 'base64')).toString() 138 | } 139 | : function (a) { 140 | return btou(Base64_atob(a)) 141 | }; 142 | var decode = function (a) { 143 | return _decode( 144 | a.replace(/[-_]/g, function (m0) { 145 | return m0 == '-' ? '+' : '/' 146 | }) 147 | .replace(/[^A-Za-z0-9\+\/]/g, '') 148 | ); 149 | }; 150 | // export Base64 151 | global.Base64_Zip = { 152 | VERSION: version, 153 | atob: Base64_atob, 154 | btoa: Base64_btoa, 155 | fromBase64: decode, 156 | toBase64: encode, 157 | utob: utob, 158 | encode: encode, 159 | encodeURI: encodeURI, 160 | btou: btou, 161 | decode: decode 162 | }; 163 | // if ES5 is available, make Base64.extendString() available 164 | if (typeof Object.defineProperty === 'function') { 165 | var noEnum = function (v) { 166 | return {value: v, enumerable: false, writable: true, configurable: true}; 167 | }; 168 | global.Base64_Zip.extendString = function () { 169 | Object.defineProperty( 170 | String.prototype, 'fromBase64', noEnum(function () { 171 | return decode(this) 172 | })); 173 | Object.defineProperty( 174 | String.prototype, 'toBase64', noEnum(function (urisafe) { 175 | return encode(this, urisafe) 176 | })); 177 | Object.defineProperty( 178 | String.prototype, 'toBase64URI', noEnum(function () { 179 | return encode(this, true) 180 | })); 181 | }; 182 | } 183 | // that's it! 184 | })(window); 185 | (function (ctx) { 186 | /* Copyright (C) 1999 Masanao Izumo 187 | * Version: 1.0.0.1 188 | * LastModified: Dec 25 1999 189 | */ 190 | 191 | /* Interface: 192 | * data = zip_inflate(src); 193 | */ 194 | 195 | /* constant parameters */ 196 | var zip_WSIZE = 32768; // Sliding Window size 197 | var zip_STORED_BLOCK = 0; 198 | var zip_STATIC_TREES = 1; 199 | var zip_DYN_TREES = 2; 200 | 201 | /* for inflate */ 202 | var zip_lbits = 9; // bits in base literal/length lookup table 203 | var zip_dbits = 6; // bits in base distance lookup table 204 | var zip_INBUFSIZ = 32768; // Input buffer size 205 | var zip_INBUF_EXTRA = 64; // Extra buffer 206 | 207 | /* variables (inflate) */ 208 | var zip_slide; 209 | var zip_wp; // current position in slide 210 | var zip_fixed_tl = null; // inflate static 211 | var zip_fixed_td; // inflate static 212 | var zip_fixed_bl, zip_fixed_bd; // inflate static 213 | var zip_bit_buf; // bit buffer 214 | var zip_bit_len; // bits in bit buffer 215 | var zip_method; 216 | var zip_eof; 217 | var zip_copy_leng; 218 | var zip_copy_dist; 219 | var zip_tl, zip_td; // literal/length and distance decoder tables 220 | var zip_bl, zip_bd; // number of bits decoded by tl and td 221 | 222 | var zip_inflate_data; 223 | var zip_inflate_pos; 224 | 225 | 226 | /* constant tables (inflate) */ 227 | var zip_MASK_BITS = new Array( 228 | 0x0000, 229 | 0x0001, 0x0003, 0x0007, 0x000f, 0x001f, 0x003f, 0x007f, 0x00ff, 230 | 0x01ff, 0x03ff, 0x07ff, 0x0fff, 0x1fff, 0x3fff, 0x7fff, 0xffff); 231 | // Tables for deflate from PKZIP's appnote.txt. 232 | var zip_cplens = new Array( // Copy lengths for literal codes 257..285 233 | 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 234 | 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0); 235 | /* note: see note #13 above about the 258 in this list. */ 236 | var zip_cplext = new Array( // Extra bits for literal codes 257..285 237 | 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 238 | 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 99, 99); // 99==invalid 239 | var zip_cpdist = new Array( // Copy offsets for distance codes 0..29 240 | 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 241 | 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 242 | 8193, 12289, 16385, 24577); 243 | var zip_cpdext = new Array( // Extra bits for distance codes 244 | 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 245 | 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 246 | 12, 12, 13, 13); 247 | var zip_border = new Array( // Order of the bit length code lengths 248 | 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15); 249 | /* objects (inflate) */ 250 | 251 | var zip_HuftList = function () { 252 | this.next = null; 253 | this.list = null; 254 | } 255 | 256 | var zip_HuftNode = function () { 257 | this.e = 0; // number of extra bits or operation 258 | this.b = 0; // number of bits in this code or subcode 259 | 260 | // union 261 | this.n = 0; // literal, length base, or distance base 262 | this.t = null; // (zip_HuftNode) pointer to next level of table 263 | } 264 | 265 | var zip_HuftBuild = function (b, // code lengths in bits (all assumed <= BMAX) 266 | n, // number of codes (assumed <= N_MAX) 267 | s, // number of simple-valued codes (0..s-1) 268 | d, // list of base values for non-simple codes 269 | e, // list of extra bits for non-simple codes 270 | mm // maximum lookup bits 271 | ) { 272 | this.BMAX = 16; // maximum bit length of any code 273 | this.N_MAX = 288; // maximum number of codes in any set 274 | this.status = 0; // 0: success, 1: incomplete table, 2: bad input 275 | this.root = null; // (zip_HuftList) starting table 276 | this.m = 0; // maximum lookup bits, returns actual 277 | 278 | /* Given a list of code lengths and a maximum table size, make a set of 279 | tables to decode that set of codes. Return zero on success, one if 280 | the given code set is incomplete (the tables are still built in this 281 | case), two if the input is invalid (all zero length codes or an 282 | oversubscribed set of lengths), and three if not enough memory. 283 | The code with value 256 is special, and the tables are constructed 284 | so that no bits beyond that code are fetched when that code is 285 | decoded. */ 286 | { 287 | var a; // counter for codes of length k 288 | var c = new Array(this.BMAX + 1); // bit length count table 289 | var el; // length of EOB code (value 256) 290 | var f; // i repeats in table every f entries 291 | var g; // maximum code length 292 | var h; // table level 293 | var i; // counter, current code 294 | var j; // counter 295 | var k; // number of bits in current code 296 | var lx = new Array(this.BMAX + 1); // stack of bits per table 297 | var p; // pointer into c[], b[], or v[] 298 | var pidx; // index of p 299 | var q; // (zip_HuftNode) points to current table 300 | var r = new zip_HuftNode(); // table entry for structure assignment 301 | var u = new Array(this.BMAX); // zip_HuftNode[BMAX][] table stack 302 | var v = new Array(this.N_MAX); // values in order of bit length 303 | var w; 304 | var x = new Array(this.BMAX + 1);// bit offsets, then code stack 305 | var xp; // pointer into x or c 306 | var y; // number of dummy codes added 307 | var z; // number of entries in current table 308 | var o; 309 | var tail; // (zip_HuftList) 310 | 311 | tail = this.root = null; 312 | for (i = 0; i < c.length; i++) 313 | c[i] = 0; 314 | for (i = 0; i < lx.length; i++) 315 | lx[i] = 0; 316 | for (i = 0; i < u.length; i++) 317 | u[i] = null; 318 | for (i = 0; i < v.length; i++) 319 | v[i] = 0; 320 | for (i = 0; i < x.length; i++) 321 | x[i] = 0; 322 | 323 | // Generate counts for each bit length 324 | el = n > 256 ? b[256] : this.BMAX; // set length of EOB code, if any 325 | p = b; 326 | pidx = 0; 327 | i = n; 328 | do { 329 | c[p[pidx]]++; // assume all entries <= BMAX 330 | pidx++; 331 | } while (--i > 0); 332 | if (c[0] == n) { // null input--all zero length codes 333 | this.root = null; 334 | this.m = 0; 335 | this.status = 0; 336 | return; 337 | } 338 | 339 | // Find minimum and maximum length, bound *m by those 340 | for (j = 1; j <= this.BMAX; j++) 341 | if (c[j] != 0) 342 | break; 343 | k = j; // minimum code length 344 | if (mm < j) 345 | mm = j; 346 | for (i = this.BMAX; i != 0; i--) 347 | if (c[i] != 0) 348 | break; 349 | g = i; // maximum code length 350 | if (mm > i) 351 | mm = i; 352 | 353 | // Adjust last length count to fill out codes, if needed 354 | for (y = 1 << j; j < i; j++, y <<= 1) 355 | if ((y -= c[j]) < 0) { 356 | this.status = 2; // bad input: more codes than bits 357 | this.m = mm; 358 | return; 359 | } 360 | if ((y -= c[i]) < 0) { 361 | this.status = 2; 362 | this.m = mm; 363 | return; 364 | } 365 | c[i] += y; 366 | 367 | // Generate starting offsets into the value table for each length 368 | x[1] = j = 0; 369 | p = c; 370 | pidx = 1; 371 | xp = 2; 372 | while (--i > 0) // note that i == g from above 373 | x[xp++] = (j += p[pidx++]); 374 | 375 | // Make a table of values in order of bit lengths 376 | p = b; 377 | pidx = 0; 378 | i = 0; 379 | do { 380 | if ((j = p[pidx++]) != 0) 381 | v[x[j]++] = i; 382 | } while (++i < n); 383 | n = x[g]; // set n to length of v 384 | 385 | // Generate the Huffman codes and for each, make the table entries 386 | x[0] = i = 0; // first Huffman code is zero 387 | p = v; 388 | pidx = 0; // grab values in bit order 389 | h = -1; // no tables yet--level -1 390 | w = lx[0] = 0; // no bits decoded yet 391 | q = null; // ditto 392 | z = 0; // ditto 393 | 394 | // go through the bit lengths (k already is bits in shortest code) 395 | for (; k <= g; k++) { 396 | a = c[k]; 397 | while (a-- > 0) { 398 | // here i is the Huffman code of length k bits for value p[pidx] 399 | // make tables up to required level 400 | while (k > w + lx[1 + h]) { 401 | w += lx[1 + h]; // add bits already decoded 402 | h++; 403 | 404 | // compute minimum size table less than or equal to *m bits 405 | z = (z = g - w) > mm ? mm : z; // upper limit 406 | if ((f = 1 << (j = k - w)) > a + 1) { // try a k-w bit table 407 | // too few codes for k-w bit table 408 | f -= a + 1; // deduct codes from patterns left 409 | xp = k; 410 | while (++j < z) { // try smaller tables up to z bits 411 | if ((f <<= 1) <= c[++xp]) 412 | break; // enough codes to use up j bits 413 | f -= c[xp]; // else deduct codes from patterns 414 | } 415 | } 416 | if (w + j > el && w < el) 417 | j = el - w; // make EOB code end at table 418 | z = 1 << j; // table entries for j-bit table 419 | lx[1 + h] = j; // set table size in stack 420 | 421 | // allocate and link in new table 422 | q = new Array(z); 423 | for (o = 0; o < z; o++) { 424 | q[o] = new zip_HuftNode(); 425 | } 426 | 427 | if (tail == null) 428 | tail = this.root = new zip_HuftList(); 429 | else 430 | tail = tail.next = new zip_HuftList(); 431 | tail.next = null; 432 | tail.list = q; 433 | u[h] = q; // table starts after link 434 | 435 | /* connect to last table, if there is one */ 436 | if (h > 0) { 437 | x[h] = i; // save pattern for backing up 438 | r.b = lx[h]; // bits to dump before this table 439 | r.e = 16 + j; // bits in this table 440 | r.t = q; // pointer to this table 441 | j = (i & ((1 << w) - 1)) >> (w - lx[h]); 442 | u[h - 1][j].e = r.e; 443 | u[h - 1][j].b = r.b; 444 | u[h - 1][j].n = r.n; 445 | u[h - 1][j].t = r.t; 446 | } 447 | } 448 | 449 | // set up table entry in r 450 | r.b = k - w; 451 | if (pidx >= n) 452 | r.e = 99; // out of values--invalid code 453 | else if (p[pidx] < s) { 454 | r.e = (p[pidx] < 256 ? 16 : 15); // 256 is end-of-block code 455 | r.n = p[pidx++]; // simple code is just the value 456 | } else { 457 | r.e = e[p[pidx] - s]; // non-simple--look up in lists 458 | r.n = d[p[pidx++] - s]; 459 | } 460 | 461 | // fill code-like entries with r // 462 | f = 1 << (k - w); 463 | for (j = i >> w; j < z; j += f) { 464 | q[j].e = r.e; 465 | q[j].b = r.b; 466 | q[j].n = r.n; 467 | q[j].t = r.t; 468 | } 469 | 470 | // backwards increment the k-bit code i 471 | for (j = 1 << (k - 1); (i & j) != 0; j >>= 1) 472 | i ^= j; 473 | i ^= j; 474 | 475 | // backup over finished tables 476 | while ((i & ((1 << w) - 1)) != x[h]) { 477 | w -= lx[h]; // don't need to update q 478 | h--; 479 | } 480 | } 481 | } 482 | 483 | /* return actual size of base table */ 484 | this.m = lx[1]; 485 | 486 | /* Return true (1) if we were given an incomplete table */ 487 | this.status = ((y != 0 && g != 1) ? 1 : 0); 488 | } 489 | /* end of constructor */ 490 | } 491 | 492 | 493 | /* routines (inflate) */ 494 | 495 | var zip_GET_BYTE = function () { 496 | if (zip_inflate_data.length == zip_inflate_pos) 497 | return -1; 498 | var charcode = zip_inflate_data.charCodeAt(zip_inflate_pos++); 499 | return charcode & 0xff; 500 | } 501 | 502 | var zip_NEEDBITS = function (n) { 503 | while (zip_bit_len < n) { 504 | zip_bit_buf |= zip_GET_BYTE() << zip_bit_len; 505 | zip_bit_len += 8; 506 | } 507 | } 508 | 509 | var zip_GETBITS = function (n) { 510 | return zip_bit_buf & zip_MASK_BITS[n]; 511 | } 512 | 513 | var zip_DUMPBITS = function (n) { 514 | zip_bit_buf >>= n; 515 | zip_bit_len -= n; 516 | } 517 | 518 | var zip_inflate_codes = function (buff, off, size) { 519 | /* inflate (decompress) the codes in a deflated (compressed) block. 520 | Return an error code or zero if it all goes ok. */ 521 | var e; // table entry flag/number of extra bits 522 | var t; // (zip_HuftNode) pointer to table entry 523 | var n; 524 | 525 | if (size == 0) 526 | return 0; 527 | 528 | // inflate the coded data 529 | n = 0; 530 | for (; ;) { // do until end of block 531 | zip_NEEDBITS(zip_bl); 532 | t = zip_tl.list[zip_GETBITS(zip_bl)]; 533 | e = t.e; 534 | while (e > 16) { 535 | if (e == 99) 536 | return -1; 537 | zip_DUMPBITS(t.b); 538 | e -= 16; 539 | zip_NEEDBITS(e); 540 | t = t.t[zip_GETBITS(e)]; 541 | e = t.e; 542 | } 543 | zip_DUMPBITS(t.b); 544 | 545 | if (e == 16) { // then it's a literal 546 | zip_wp &= zip_WSIZE - 1; 547 | buff[off + n++] = zip_slide[zip_wp++] = t.n; 548 | if (n == size) 549 | return size; 550 | continue; 551 | } 552 | 553 | // exit if end of block 554 | if (e == 15) 555 | break; 556 | 557 | // it's an EOB or a length 558 | 559 | // get length of block to copy 560 | zip_NEEDBITS(e); 561 | zip_copy_leng = t.n + zip_GETBITS(e); 562 | zip_DUMPBITS(e); 563 | 564 | // decode distance of block to copy 565 | zip_NEEDBITS(zip_bd); 566 | t = zip_td.list[zip_GETBITS(zip_bd)]; 567 | e = t.e; 568 | 569 | while (e > 16) { 570 | if (e == 99) 571 | return -1; 572 | zip_DUMPBITS(t.b); 573 | e -= 16; 574 | zip_NEEDBITS(e); 575 | t = t.t[zip_GETBITS(e)]; 576 | e = t.e; 577 | } 578 | zip_DUMPBITS(t.b); 579 | zip_NEEDBITS(e); 580 | zip_copy_dist = zip_wp - t.n - zip_GETBITS(e); 581 | zip_DUMPBITS(e); 582 | 583 | // do the copy 584 | while (zip_copy_leng > 0 && n < size) { 585 | zip_copy_leng--; 586 | zip_copy_dist &= zip_WSIZE - 1; 587 | zip_wp &= zip_WSIZE - 1; 588 | buff[off + n++] = zip_slide[zip_wp++] 589 | = zip_slide[zip_copy_dist++]; 590 | } 591 | 592 | if (n == size) 593 | return size; 594 | } 595 | 596 | zip_method = -1; // done 597 | return n; 598 | } 599 | 600 | var zip_inflate_stored = function (buff, off, size) { 601 | /* "decompress" an inflated type 0 (stored) block. */ 602 | var n; 603 | 604 | // go to byte boundary 605 | n = zip_bit_len & 7; 606 | zip_DUMPBITS(n); 607 | 608 | // get the length and its complement 609 | zip_NEEDBITS(16); 610 | n = zip_GETBITS(16); 611 | zip_DUMPBITS(16); 612 | zip_NEEDBITS(16); 613 | if (n != ((~zip_bit_buf) & 0xffff)) 614 | return -1; // error in compressed data 615 | zip_DUMPBITS(16); 616 | 617 | // read and output the compressed data 618 | zip_copy_leng = n; 619 | 620 | n = 0; 621 | while (zip_copy_leng > 0 && n < size) { 622 | zip_copy_leng--; 623 | zip_wp &= zip_WSIZE - 1; 624 | zip_NEEDBITS(8); 625 | buff[off + n++] = zip_slide[zip_wp++] = 626 | zip_GETBITS(8); 627 | zip_DUMPBITS(8); 628 | } 629 | 630 | if (zip_copy_leng == 0) 631 | zip_method = -1; // done 632 | return n; 633 | } 634 | 635 | var zip_inflate_fixed = function (buff, off, size) { 636 | /* decompress an inflated type 1 (fixed Huffman codes) block. We should 637 | either replace this with a custom decoder, or at least precompute the 638 | Huffman tables. */ 639 | 640 | // if first time, set up tables for fixed blocks 641 | if (zip_fixed_tl == null) { 642 | var i; // temporary variable 643 | var l = new Array(288); // length list for huft_build 644 | var h; // zip_HuftBuild 645 | 646 | // literal table 647 | for (i = 0; i < 144; i++) 648 | l[i] = 8; 649 | for (; i < 256; i++) 650 | l[i] = 9; 651 | for (; i < 280; i++) 652 | l[i] = 7; 653 | for (; i < 288; i++) // make a complete, but wrong code set 654 | l[i] = 8; 655 | zip_fixed_bl = 7; 656 | 657 | h = new zip_HuftBuild(l, 288, 257, zip_cplens, zip_cplext, 658 | zip_fixed_bl); 659 | if (h.status != 0) { 660 | alert("HufBuild error: " + h.status); 661 | return -1; 662 | } 663 | zip_fixed_tl = h.root; 664 | zip_fixed_bl = h.m; 665 | 666 | // distance table 667 | for (i = 0; i < 30; i++) // make an incomplete code set 668 | l[i] = 5; 669 | zip_fixed_bd = 5; 670 | 671 | h = new zip_HuftBuild(l, 30, 0, zip_cpdist, zip_cpdext, zip_fixed_bd); 672 | if (h.status > 1) { 673 | zip_fixed_tl = null; 674 | alert("HufBuild error: " + h.status); 675 | return -1; 676 | } 677 | zip_fixed_td = h.root; 678 | zip_fixed_bd = h.m; 679 | } 680 | 681 | zip_tl = zip_fixed_tl; 682 | zip_td = zip_fixed_td; 683 | zip_bl = zip_fixed_bl; 684 | zip_bd = zip_fixed_bd; 685 | return zip_inflate_codes(buff, off, size); 686 | } 687 | 688 | var zip_inflate_dynamic = function (buff, off, size) { 689 | // decompress an inflated type 2 (dynamic Huffman codes) block. 690 | var i; // temporary variables 691 | var j; 692 | var l; // last length 693 | var n; // number of lengths to get 694 | var t; // (zip_HuftNode) literal/length code table 695 | var nb; // number of bit length codes 696 | var nl; // number of literal/length codes 697 | var nd; // number of distance codes 698 | var ll = new Array(286 + 30); // literal/length and distance code lengths 699 | var h; // (zip_HuftBuild) 700 | 701 | for (i = 0; i < ll.length; i++) 702 | ll[i] = 0; 703 | 704 | // read in table lengths 705 | zip_NEEDBITS(5); 706 | nl = 257 + zip_GETBITS(5); // number of literal/length codes 707 | zip_DUMPBITS(5); 708 | zip_NEEDBITS(5); 709 | nd = 1 + zip_GETBITS(5); // number of distance codes 710 | zip_DUMPBITS(5); 711 | zip_NEEDBITS(4); 712 | nb = 4 + zip_GETBITS(4); // number of bit length codes 713 | zip_DUMPBITS(4); 714 | if (nl > 286 || nd > 30) 715 | return -1; // bad lengths 716 | 717 | // read in bit-length-code lengths 718 | for (j = 0; j < nb; j++) { 719 | zip_NEEDBITS(3); 720 | ll[zip_border[j]] = zip_GETBITS(3); 721 | zip_DUMPBITS(3); 722 | } 723 | for (; j < 19; j++) 724 | ll[zip_border[j]] = 0; 725 | 726 | // build decoding table for trees--single level, 7 bit lookup 727 | zip_bl = 7; 728 | h = new zip_HuftBuild(ll, 19, 19, null, null, zip_bl); 729 | if (h.status != 0) 730 | return -1; // incomplete code set 731 | 732 | zip_tl = h.root; 733 | zip_bl = h.m; 734 | 735 | // read in literal and distance code lengths 736 | n = nl + nd; 737 | i = l = 0; 738 | while (i < n) { 739 | zip_NEEDBITS(zip_bl); 740 | t = zip_tl.list[zip_GETBITS(zip_bl)]; 741 | j = t.b; 742 | zip_DUMPBITS(j); 743 | j = t.n; 744 | if (j < 16) // length of code in bits (0..15) 745 | ll[i++] = l = j; // save last length in l 746 | else if (j == 16) { // repeat last length 3 to 6 times 747 | zip_NEEDBITS(2); 748 | j = 3 + zip_GETBITS(2); 749 | zip_DUMPBITS(2); 750 | if (i + j > n) 751 | return -1; 752 | while (j-- > 0) 753 | ll[i++] = l; 754 | } else if (j == 17) { // 3 to 10 zero length codes 755 | zip_NEEDBITS(3); 756 | j = 3 + zip_GETBITS(3); 757 | zip_DUMPBITS(3); 758 | if (i + j > n) 759 | return -1; 760 | while (j-- > 0) 761 | ll[i++] = 0; 762 | l = 0; 763 | } else { // j == 18: 11 to 138 zero length codes 764 | zip_NEEDBITS(7); 765 | j = 11 + zip_GETBITS(7); 766 | zip_DUMPBITS(7); 767 | if (i + j > n) 768 | return -1; 769 | while (j-- > 0) 770 | ll[i++] = 0; 771 | l = 0; 772 | } 773 | } 774 | 775 | // build the decoding tables for literal/length and distance codes 776 | zip_bl = zip_lbits; 777 | h = new zip_HuftBuild(ll, nl, 257, zip_cplens, zip_cplext, zip_bl); 778 | if (zip_bl == 0) // no literals or lengths 779 | h.status = 1; 780 | if (h.status != 0) { 781 | if (h.status == 1) 782 | ;// **incomplete literal tree** 783 | return -1; // incomplete code set 784 | } 785 | zip_tl = h.root; 786 | zip_bl = h.m; 787 | 788 | for (i = 0; i < nd; i++) 789 | ll[i] = ll[i + nl]; 790 | zip_bd = zip_dbits; 791 | h = new zip_HuftBuild(ll, nd, 0, zip_cpdist, zip_cpdext, zip_bd); 792 | zip_td = h.root; 793 | zip_bd = h.m; 794 | 795 | if (zip_bd == 0 && nl > 257) { // lengths but no distances 796 | // **incomplete distance tree** 797 | return -1; 798 | } 799 | 800 | if (h.status == 1) { 801 | ;// **incomplete distance tree** 802 | } 803 | if (h.status != 0) 804 | return -1; 805 | 806 | // decompress until an end-of-block code 807 | return zip_inflate_codes(buff, off, size); 808 | } 809 | 810 | var zip_inflate_start = function () { 811 | var i; 812 | 813 | if (zip_slide == null) 814 | zip_slide = new Array(2 * zip_WSIZE); 815 | zip_wp = 0; 816 | zip_bit_buf = 0; 817 | zip_bit_len = 0; 818 | zip_method = -1; 819 | zip_eof = false; 820 | zip_copy_leng = zip_copy_dist = 0; 821 | zip_tl = null; 822 | } 823 | 824 | var zip_inflate_internal = function (buff, off, size) { 825 | // decompress an inflated entry 826 | var n, i; 827 | 828 | n = 0; 829 | while (n < size) { 830 | if (zip_eof && zip_method == -1) 831 | return n; 832 | 833 | if (zip_copy_leng > 0) { 834 | if (zip_method != zip_STORED_BLOCK) { 835 | // STATIC_TREES or DYN_TREES 836 | while (zip_copy_leng > 0 && n < size) { 837 | zip_copy_leng--; 838 | zip_copy_dist &= zip_WSIZE - 1; 839 | zip_wp &= zip_WSIZE - 1; 840 | buff[off + n++] = zip_slide[zip_wp++] = 841 | zip_slide[zip_copy_dist++]; 842 | } 843 | } else { 844 | while (zip_copy_leng > 0 && n < size) { 845 | zip_copy_leng--; 846 | zip_wp &= zip_WSIZE - 1; 847 | zip_NEEDBITS(8); 848 | buff[off + n++] = zip_slide[zip_wp++] = zip_GETBITS(8); 849 | zip_DUMPBITS(8); 850 | } 851 | if (zip_copy_leng == 0) 852 | zip_method = -1; // done 853 | } 854 | if (n == size) 855 | return n; 856 | } 857 | 858 | if (zip_method == -1) { 859 | if (zip_eof) 860 | break; 861 | 862 | // read in last block bit 863 | zip_NEEDBITS(1); 864 | if (zip_GETBITS(1) != 0) 865 | zip_eof = true; 866 | zip_DUMPBITS(1); 867 | 868 | // read in block type 869 | zip_NEEDBITS(2); 870 | zip_method = zip_GETBITS(2); 871 | zip_DUMPBITS(2); 872 | zip_tl = null; 873 | zip_copy_leng = 0; 874 | } 875 | 876 | switch (zip_method) { 877 | case 0: // zip_STORED_BLOCK 878 | i = zip_inflate_stored(buff, off + n, size - n); 879 | break; 880 | 881 | case 1: // zip_STATIC_TREES 882 | if (zip_tl != null) 883 | i = zip_inflate_codes(buff, off + n, size - n); 884 | else 885 | i = zip_inflate_fixed(buff, off + n, size - n); 886 | break; 887 | 888 | case 2: // zip_DYN_TREES 889 | if (zip_tl != null) 890 | i = zip_inflate_codes(buff, off + n, size - n); 891 | else 892 | i = zip_inflate_dynamic(buff, off + n, size - n); 893 | break; 894 | 895 | default: // error 896 | i = -1; 897 | break; 898 | } 899 | 900 | if (i == -1) { 901 | if (zip_eof) 902 | return 0; 903 | return -1; 904 | } 905 | n += i; 906 | } 907 | return n; 908 | } 909 | 910 | var zip_inflate = function (str) { 911 | var i, j; 912 | 913 | zip_inflate_start(); 914 | zip_inflate_data = str; 915 | zip_inflate_pos = 0; 916 | 917 | var buff = new Array(1024); 918 | var aout = []; 919 | while ((i = zip_inflate_internal(buff, 0, buff.length)) > 0) { 920 | var cbuf = new Array(i); 921 | for (j = 0; j < i; j++) { 922 | cbuf[j] = String.fromCharCode(buff[j]); 923 | } 924 | aout[aout.length] = cbuf.join(""); 925 | } 926 | zip_inflate_data = null; // G.C. 927 | return aout.join(""); 928 | } 929 | 930 | if (!ctx.RawDeflate) ctx.RawDeflate = {}; 931 | ctx.RawDeflate.inflate = zip_inflate; 932 | 933 | })(window); 934 | 935 | function unzip(b64Data) { 936 | var strData; 937 | if (!window.atob) { 938 | // strData = $.base64.atob(b64Data) 939 | } else { 940 | // strData = atob(b64Data) 941 | } 942 | var charData; 943 | if (!Array.prototype.map) { 944 | // charData =iemap( strData.split(''),function (x) { return x.charCodeAt(0); },null); 945 | } else { 946 | // charData = strData.split('').map(function (x) { return x.charCodeAt(0); }); 947 | } 948 | 949 | strData = window.Base64_Zip.btou(window.RawDeflate.inflate(window.Base64_Zip.fromBase64(b64Data))); 950 | // var binData = new Uint8Array(charData); 951 | // var data = pako.inflate(binData); 952 | // strData = String.fromCharCode.apply(null, new Uint16Array(data)); 953 | return strData; 954 | } 955 | 956 | var CryptoJS = CryptoJS || function (u, p) { 957 | var d = {} 958 | , l = d.lib = {} 959 | , s = function () { 960 | } 961 | , t = l.Base = { 962 | extend: function (a) { 963 | s.prototype = this; 964 | var c = new s; 965 | a && c.mixIn(a); 966 | c.hasOwnProperty("init") || (c.init = function () { 967 | c.$super.init.apply(this, arguments) 968 | } 969 | ); 970 | c.init.prototype = c; 971 | c.$super = this; 972 | return c 973 | }, 974 | create: function () { 975 | var a = this.extend(); 976 | a.init.apply(a, arguments); 977 | return a 978 | }, 979 | init: function () { 980 | }, 981 | mixIn: function (a) { 982 | for (var c in a) 983 | a.hasOwnProperty(c) && (this[c] = a[c]); 984 | a.hasOwnProperty("toString") && (this.toString = a.toString) 985 | }, 986 | clone: function () { 987 | return this.init.prototype.extend(this) 988 | } 989 | } 990 | , r = l.WordArray = t.extend({ 991 | init: function (a, c) { 992 | a = this.words = a || []; 993 | this.sigBytes = c != p ? c : 4 * a.length 994 | }, 995 | toString: function (a) { 996 | return (a || v).stringify(this) 997 | }, 998 | concat: function (a) { 999 | var c = this.words 1000 | , e = a.words 1001 | , j = this.sigBytes; 1002 | a = a.sigBytes; 1003 | this.clamp(); 1004 | if (j % 4) 1005 | for (var k = 0; k < a; k++) 1006 | c[j + k >>> 2] |= (e[k >>> 2] >>> 24 - 8 * (k % 4) & 255) << 24 - 8 * ((j + k) % 4); 1007 | else if (65535 < e.length) 1008 | for (k = 0; k < a; k += 4) 1009 | c[j + k >>> 2] = e[k >>> 2]; 1010 | else 1011 | c.push.apply(c, e); 1012 | this.sigBytes += a; 1013 | return this 1014 | }, 1015 | clamp: function () { 1016 | var a = this.words 1017 | , c = this.sigBytes; 1018 | a[c >>> 2] &= 4294967295 << 32 - 8 * (c % 4); 1019 | a.length = u.ceil(c / 4) 1020 | }, 1021 | clone: function () { 1022 | var a = t.clone.call(this); 1023 | a.words = this.words.slice(0); 1024 | return a 1025 | }, 1026 | random: function (a) { 1027 | for (var c = [], e = 0; e < a; e += 4) 1028 | c.push(4294967296 * u.random() | 0); 1029 | return new r.init(c, a) 1030 | } 1031 | }) 1032 | , w = d.enc = {} 1033 | , v = w.Hex = { 1034 | stringify: function (a) { 1035 | var c = a.words; 1036 | a = a.sigBytes; 1037 | for (var e = [], j = 0; j < a; j++) { 1038 | var k = c[j >>> 2] >>> 24 - 8 * (j % 4) & 255; 1039 | e.push((k >>> 4).toString(16)); 1040 | e.push((k & 15).toString(16)) 1041 | } 1042 | return e.join("") 1043 | }, 1044 | parse: function (a) { 1045 | for (var c = a.length, e = [], j = 0; j < c; j += 2) 1046 | e[j >>> 3] |= parseInt(a.substr(j, 2), 16) << 24 - 4 * (j % 8); 1047 | return new r.init(e, c / 2) 1048 | } 1049 | } 1050 | , b = w.Latin1 = { 1051 | stringify: function (a) { 1052 | var c = a.words; 1053 | a = a.sigBytes; 1054 | for (var e = [], j = 0; j < a; j++) 1055 | e.push(String.fromCharCode(c[j >>> 2] >>> 24 - 8 * (j % 4) & 255)); 1056 | return e.join("") 1057 | }, 1058 | parse: function (a) { 1059 | for (var c = a.length, e = [], j = 0; j < c; j++) 1060 | e[j >>> 2] |= (a.charCodeAt(j) & 255) << 24 - 8 * (j % 4); 1061 | return new r.init(e, c) 1062 | } 1063 | } 1064 | , x = w.Utf8 = { 1065 | stringify: function (a) { 1066 | try { 1067 | return decodeURIComponent(escape(b.stringify(a))) 1068 | } catch (c) { 1069 | throw Error("Malformed UTF-8 data"); 1070 | } 1071 | }, 1072 | parse: function (a) { 1073 | return b.parse(unescape(encodeURIComponent(a))) 1074 | } 1075 | } 1076 | , q = l.BufferedBlockAlgorithm = t.extend({ 1077 | reset: function () { 1078 | this._data = new r.init; 1079 | this._nDataBytes = 0 1080 | }, 1081 | _append: function (a) { 1082 | "string" == typeof a && (a = x.parse(a)); 1083 | this._data.concat(a); 1084 | this._nDataBytes += a.sigBytes 1085 | }, 1086 | _process: function (a) { 1087 | var c = this._data 1088 | , e = c.words 1089 | , j = c.sigBytes 1090 | , k = this.blockSize 1091 | , b = j / (4 * k) 1092 | , b = a ? u.ceil(b) : u.max((b | 0) - this._minBufferSize, 0); 1093 | a = b * k; 1094 | j = u.min(4 * a, j); 1095 | if (a) { 1096 | for (var q = 0; q < a; q += k) 1097 | this._doProcessBlock(e, q); 1098 | q = e.splice(0, a); 1099 | c.sigBytes -= j 1100 | } 1101 | return new r.init(q, j) 1102 | }, 1103 | clone: function () { 1104 | var a = t.clone.call(this); 1105 | a._data = this._data.clone(); 1106 | return a 1107 | }, 1108 | _minBufferSize: 0 1109 | }); 1110 | l.Hasher = q.extend({ 1111 | cfg: t.extend(), 1112 | init: function (a) { 1113 | this.cfg = this.cfg.extend(a); 1114 | this.reset() 1115 | }, 1116 | reset: function () { 1117 | q.reset.call(this); 1118 | this._doReset() 1119 | }, 1120 | update: function (a) { 1121 | this._append(a); 1122 | this._process(); 1123 | return this 1124 | }, 1125 | finalize: function (a) { 1126 | a && this._append(a); 1127 | return this._doFinalize() 1128 | }, 1129 | blockSize: 16, 1130 | _createHelper: function (a) { 1131 | return function (b, e) { 1132 | return (new a.init(e)).finalize(b) 1133 | } 1134 | }, 1135 | _createHmacHelper: function (a) { 1136 | return function (b, e) { 1137 | return (new n.HMAC.init(a, e)).finalize(b) 1138 | } 1139 | } 1140 | }); 1141 | var n = d.algo = {}; 1142 | return d 1143 | }(Math); 1144 | (function () { 1145 | var u = CryptoJS 1146 | , p = u.lib.WordArray; 1147 | u.enc.Base64 = { 1148 | stringify: function (d) { 1149 | var l = d.words 1150 | , p = d.sigBytes 1151 | , t = this._map; 1152 | d.clamp(); 1153 | d = []; 1154 | for (var r = 0; r < p; r += 3) 1155 | for (var w = (l[r >>> 2] >>> 24 - 8 * (r % 4) & 255) << 16 | (l[r + 1 >>> 2] >>> 24 - 8 * ((r + 1) % 4) & 255) << 8 | l[r + 2 >>> 2] >>> 24 - 8 * ((r + 2) % 4) & 255, v = 0; 4 > v && r + 0.75 * v < p; v++) 1156 | d.push(t.charAt(w >>> 6 * (3 - v) & 63)); 1157 | if (l = t.charAt(64)) 1158 | for (; d.length % 4;) 1159 | d.push(l); 1160 | return d.join("") 1161 | }, 1162 | parse: function (d) { 1163 | var l = d.length 1164 | , s = this._map 1165 | , t = s.charAt(64); 1166 | t && (t = d.indexOf(t), 1167 | -1 != t && (l = t)); 1168 | for (var t = [], r = 0, w = 0; w < l; w++) 1169 | if (w % 4) { 1170 | var v = s.indexOf(d.charAt(w - 1)) << 2 * (w % 4) 1171 | , b = s.indexOf(d.charAt(w)) >>> 6 - 2 * (w % 4); 1172 | t[r >>> 2] |= (v | b) << 24 - 8 * (r % 4); 1173 | r++ 1174 | } 1175 | return p.create(t, r) 1176 | }, 1177 | _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" 1178 | } 1179 | } 1180 | )(); 1181 | (function (u) { 1182 | function p(b, n, a, c, e, j, k) { 1183 | b = b + (n & a | ~n & c) + e + k; 1184 | return (b << j | b >>> 32 - j) + n 1185 | } 1186 | 1187 | function d(b, n, a, c, e, j, k) { 1188 | b = b + (n & c | a & ~c) + e + k; 1189 | return (b << j | b >>> 32 - j) + n 1190 | } 1191 | 1192 | function l(b, n, a, c, e, j, k) { 1193 | b = b + (n ^ a ^ c) + e + k; 1194 | return (b << j | b >>> 32 - j) + n 1195 | } 1196 | 1197 | function s(b, n, a, c, e, j, k) { 1198 | b = b + (a ^ (n | ~c)) + e + k; 1199 | return (b << j | b >>> 32 - j) + n 1200 | } 1201 | 1202 | for (var t = CryptoJS, r = t.lib, w = r.WordArray, v = r.Hasher, r = t.algo, b = [], x = 0; 64 > x; x++) 1203 | b[x] = 4294967296 * u.abs(u.sin(x + 1)) | 0; 1204 | r = r.MD5 = v.extend({ 1205 | _doReset: function () { 1206 | this._hash = new w.init([1732584193, 4023233417, 2562383102, 271733878]) 1207 | }, 1208 | _doProcessBlock: function (q, n) { 1209 | for (var a = 0; 16 > a; a++) { 1210 | var c = n + a 1211 | , e = q[c]; 1212 | q[c] = (e << 8 | e >>> 24) & 16711935 | (e << 24 | e >>> 8) & 4278255360 1213 | } 1214 | var a = this._hash.words 1215 | , c = q[n + 0] 1216 | , e = q[n + 1] 1217 | , j = q[n + 2] 1218 | , k = q[n + 3] 1219 | , z = q[n + 4] 1220 | , r = q[n + 5] 1221 | , t = q[n + 6] 1222 | , w = q[n + 7] 1223 | , v = q[n + 8] 1224 | , A = q[n + 9] 1225 | , B = q[n + 10] 1226 | , C = q[n + 11] 1227 | , u = q[n + 12] 1228 | , D = q[n + 13] 1229 | , E = q[n + 14] 1230 | , x = q[n + 15] 1231 | , f = a[0] 1232 | , m = a[1] 1233 | , g = a[2] 1234 | , h = a[3] 1235 | , f = p(f, m, g, h, c, 7, b[0]) 1236 | , h = p(h, f, m, g, e, 12, b[1]) 1237 | , g = p(g, h, f, m, j, 17, b[2]) 1238 | , m = p(m, g, h, f, k, 22, b[3]) 1239 | , f = p(f, m, g, h, z, 7, b[4]) 1240 | , h = p(h, f, m, g, r, 12, b[5]) 1241 | , g = p(g, h, f, m, t, 17, b[6]) 1242 | , m = p(m, g, h, f, w, 22, b[7]) 1243 | , f = p(f, m, g, h, v, 7, b[8]) 1244 | , h = p(h, f, m, g, A, 12, b[9]) 1245 | , g = p(g, h, f, m, B, 17, b[10]) 1246 | , m = p(m, g, h, f, C, 22, b[11]) 1247 | , f = p(f, m, g, h, u, 7, b[12]) 1248 | , h = p(h, f, m, g, D, 12, b[13]) 1249 | , g = p(g, h, f, m, E, 17, b[14]) 1250 | , m = p(m, g, h, f, x, 22, b[15]) 1251 | , f = d(f, m, g, h, e, 5, b[16]) 1252 | , h = d(h, f, m, g, t, 9, b[17]) 1253 | , g = d(g, h, f, m, C, 14, b[18]) 1254 | , m = d(m, g, h, f, c, 20, b[19]) 1255 | , f = d(f, m, g, h, r, 5, b[20]) 1256 | , h = d(h, f, m, g, B, 9, b[21]) 1257 | , g = d(g, h, f, m, x, 14, b[22]) 1258 | , m = d(m, g, h, f, z, 20, b[23]) 1259 | , f = d(f, m, g, h, A, 5, b[24]) 1260 | , h = d(h, f, m, g, E, 9, b[25]) 1261 | , g = d(g, h, f, m, k, 14, b[26]) 1262 | , m = d(m, g, h, f, v, 20, b[27]) 1263 | , f = d(f, m, g, h, D, 5, b[28]) 1264 | , h = d(h, f, m, g, j, 9, b[29]) 1265 | , g = d(g, h, f, m, w, 14, b[30]) 1266 | , m = d(m, g, h, f, u, 20, b[31]) 1267 | , f = l(f, m, g, h, r, 4, b[32]) 1268 | , h = l(h, f, m, g, v, 11, b[33]) 1269 | , g = l(g, h, f, m, C, 16, b[34]) 1270 | , m = l(m, g, h, f, E, 23, b[35]) 1271 | , f = l(f, m, g, h, e, 4, b[36]) 1272 | , h = l(h, f, m, g, z, 11, b[37]) 1273 | , g = l(g, h, f, m, w, 16, b[38]) 1274 | , m = l(m, g, h, f, B, 23, b[39]) 1275 | , f = l(f, m, g, h, D, 4, b[40]) 1276 | , h = l(h, f, m, g, c, 11, b[41]) 1277 | , g = l(g, h, f, m, k, 16, b[42]) 1278 | , m = l(m, g, h, f, t, 23, b[43]) 1279 | , f = l(f, m, g, h, A, 4, b[44]) 1280 | , h = l(h, f, m, g, u, 11, b[45]) 1281 | , g = l(g, h, f, m, x, 16, b[46]) 1282 | , m = l(m, g, h, f, j, 23, b[47]) 1283 | , f = s(f, m, g, h, c, 6, b[48]) 1284 | , h = s(h, f, m, g, w, 10, b[49]) 1285 | , g = s(g, h, f, m, E, 15, b[50]) 1286 | , m = s(m, g, h, f, r, 21, b[51]) 1287 | , f = s(f, m, g, h, u, 6, b[52]) 1288 | , h = s(h, f, m, g, k, 10, b[53]) 1289 | , g = s(g, h, f, m, B, 15, b[54]) 1290 | , m = s(m, g, h, f, e, 21, b[55]) 1291 | , f = s(f, m, g, h, v, 6, b[56]) 1292 | , h = s(h, f, m, g, x, 10, b[57]) 1293 | , g = s(g, h, f, m, t, 15, b[58]) 1294 | , m = s(m, g, h, f, D, 21, b[59]) 1295 | , f = s(f, m, g, h, z, 6, b[60]) 1296 | , h = s(h, f, m, g, C, 10, b[61]) 1297 | , g = s(g, h, f, m, j, 15, b[62]) 1298 | , m = s(m, g, h, f, A, 21, b[63]); 1299 | a[0] = a[0] + f | 0; 1300 | a[1] = a[1] + m | 0; 1301 | a[2] = a[2] + g | 0; 1302 | a[3] = a[3] + h | 0 1303 | }, 1304 | _doFinalize: function () { 1305 | var b = this._data 1306 | , n = b.words 1307 | , a = 8 * this._nDataBytes 1308 | , c = 8 * b.sigBytes; 1309 | n[c >>> 5] |= 128 << 24 - c % 32; 1310 | var e = u.floor(a / 4294967296); 1311 | n[(c + 64 >>> 9 << 4) + 15] = (e << 8 | e >>> 24) & 16711935 | (e << 24 | e >>> 8) & 4278255360; 1312 | n[(c + 64 >>> 9 << 4) + 14] = (a << 8 | a >>> 24) & 16711935 | (a << 24 | a >>> 8) & 4278255360; 1313 | b.sigBytes = 4 * (n.length + 1); 1314 | this._process(); 1315 | b = this._hash; 1316 | n = b.words; 1317 | for (a = 0; 4 > a; a++) 1318 | c = n[a], 1319 | n[a] = (c << 8 | c >>> 24) & 16711935 | (c << 24 | c >>> 8) & 4278255360; 1320 | return b 1321 | }, 1322 | clone: function () { 1323 | var b = v.clone.call(this); 1324 | b._hash = this._hash.clone(); 1325 | return b 1326 | } 1327 | }); 1328 | t.MD5 = v._createHelper(r); 1329 | t.HmacMD5 = v._createHmacHelper(r) 1330 | } 1331 | )(Math); 1332 | (function () { 1333 | var u = CryptoJS 1334 | , p = u.lib 1335 | , d = p.Base 1336 | , l = p.WordArray 1337 | , p = u.algo 1338 | , s = p.EvpKDF = d.extend({ 1339 | cfg: d.extend({ 1340 | keySize: 4, 1341 | hasher: p.MD5, 1342 | iterations: 1 1343 | }), 1344 | init: function (d) { 1345 | this.cfg = this.cfg.extend(d) 1346 | }, 1347 | compute: function (d, r) { 1348 | for (var p = this.cfg, s = p.hasher.create(), b = l.create(), u = b.words, q = p.keySize, p = p.iterations; u.length < q;) { 1349 | n && s.update(n); 1350 | var n = s.update(d).finalize(r); 1351 | s.reset(); 1352 | for (var a = 1; a < p; a++) 1353 | n = s.finalize(n), 1354 | s.reset(); 1355 | b.concat(n) 1356 | } 1357 | b.sigBytes = 4 * q; 1358 | return b 1359 | } 1360 | }); 1361 | u.EvpKDF = function (d, l, p) { 1362 | return s.create(p).compute(d, l) 1363 | } 1364 | } 1365 | )(); 1366 | CryptoJS.lib.Cipher || function (u) { 1367 | var p = CryptoJS 1368 | , d = p.lib 1369 | , l = d.Base 1370 | , s = d.WordArray 1371 | , t = d.BufferedBlockAlgorithm 1372 | , r = p.enc.Base64 1373 | , w = p.algo.EvpKDF 1374 | , v = d.Cipher = t.extend({ 1375 | cfg: l.extend(), 1376 | createEncryptor: function (e, a) { 1377 | return this.create(this._ENC_XFORM_MODE, e, a) 1378 | }, 1379 | createDecryptor: function (e, a) { 1380 | return this.create(this._DEC_XFORM_MODE, e, a) 1381 | }, 1382 | init: function (e, a, b) { 1383 | this.cfg = this.cfg.extend(b); 1384 | this._xformMode = e; 1385 | this._key = a; 1386 | this.reset() 1387 | }, 1388 | reset: function () { 1389 | t.reset.call(this); 1390 | this._doReset() 1391 | }, 1392 | process: function (e) { 1393 | this._append(e); 1394 | return this._process() 1395 | }, 1396 | finalize: function (e) { 1397 | e && this._append(e); 1398 | return this._doFinalize() 1399 | }, 1400 | keySize: 4, 1401 | ivSize: 4, 1402 | _ENC_XFORM_MODE: 1, 1403 | _DEC_XFORM_MODE: 2, 1404 | _createHelper: function (e) { 1405 | return { 1406 | encrypt: function (b, k, d) { 1407 | return ("string" == typeof k ? c : a).encrypt(e, b, k, d) 1408 | }, 1409 | decrypt: function (b, k, d) { 1410 | return ("string" == typeof k ? c : a).decrypt(e, b, k, d) 1411 | } 1412 | } 1413 | } 1414 | }); 1415 | d.StreamCipher = v.extend({ 1416 | _doFinalize: function () { 1417 | return this._process(!0) 1418 | }, 1419 | blockSize: 1 1420 | }); 1421 | var b = p.mode = {} 1422 | , x = function (e, a, b) { 1423 | var c = this._iv; 1424 | c ? this._iv = u : c = this._prevBlock; 1425 | for (var d = 0; d < b; d++) 1426 | e[a + d] ^= c[d] 1427 | } 1428 | , q = (d.BlockCipherMode = l.extend({ 1429 | createEncryptor: function (e, a) { 1430 | return this.Encryptor.create(e, a) 1431 | }, 1432 | createDecryptor: function (e, a) { 1433 | return this.Decryptor.create(e, a) 1434 | }, 1435 | init: function (e, a) { 1436 | this._cipher = e; 1437 | this._iv = a 1438 | } 1439 | })).extend(); 1440 | q.Encryptor = q.extend({ 1441 | processBlock: function (e, a) { 1442 | var b = this._cipher 1443 | , c = b.blockSize; 1444 | x.call(this, e, a, c); 1445 | b.encryptBlock(e, a); 1446 | this._prevBlock = e.slice(a, a + c) 1447 | } 1448 | }); 1449 | q.Decryptor = q.extend({ 1450 | processBlock: function (e, a) { 1451 | var b = this._cipher 1452 | , c = b.blockSize 1453 | , d = e.slice(a, a + c); 1454 | b.decryptBlock(e, a); 1455 | x.call(this, e, a, c); 1456 | this._prevBlock = d 1457 | } 1458 | }); 1459 | b = b.CBC = q; 1460 | q = (p.pad = {}).Pkcs7 = { 1461 | pad: function (a, b) { 1462 | for (var c = 4 * b, c = c - a.sigBytes % c, d = c << 24 | c << 16 | c << 8 | c, l = [], n = 0; n < c; n += 4) 1463 | l.push(d); 1464 | c = s.create(l, c); 1465 | a.concat(c) 1466 | }, 1467 | unpad: function (a) { 1468 | a.sigBytes -= a.words[a.sigBytes - 1 >>> 2] & 255 1469 | } 1470 | }; 1471 | d.BlockCipher = v.extend({ 1472 | cfg: v.cfg.extend({ 1473 | mode: b, 1474 | padding: q 1475 | }), 1476 | reset: function () { 1477 | v.reset.call(this); 1478 | var a = this.cfg 1479 | , b = a.iv 1480 | , a = a.mode; 1481 | if (this._xformMode == this._ENC_XFORM_MODE) 1482 | var c = a.createEncryptor; 1483 | else 1484 | c = a.createDecryptor, 1485 | this._minBufferSize = 1; 1486 | this._mode = c.call(a, this, b && b.words) 1487 | }, 1488 | _doProcessBlock: function (a, b) { 1489 | this._mode.processBlock(a, b) 1490 | }, 1491 | _doFinalize: function () { 1492 | var a = this.cfg.padding; 1493 | if (this._xformMode == this._ENC_XFORM_MODE) { 1494 | a.pad(this._data, this.blockSize); 1495 | var b = this._process(!0) 1496 | } else 1497 | b = this._process(!0), 1498 | a.unpad(b); 1499 | return b 1500 | }, 1501 | blockSize: 4 1502 | }); 1503 | var n = d.CipherParams = l.extend({ 1504 | init: function (a) { 1505 | this.mixIn(a) 1506 | }, 1507 | toString: function (a) { 1508 | return (a || this.formatter).stringify(this) 1509 | } 1510 | }) 1511 | , b = (p.format = {}).OpenSSL = { 1512 | stringify: function (a) { 1513 | var b = a.ciphertext; 1514 | a = a.salt; 1515 | return (a ? s.create([1398893684, 1701076831]).concat(a).concat(b) : b).toString(r) 1516 | }, 1517 | parse: function (a) { 1518 | a = r.parse(a); 1519 | var b = a.words; 1520 | if (1398893684 == b[0] && 1701076831 == b[1]) { 1521 | var c = s.create(b.slice(2, 4)); 1522 | b.splice(0, 4); 1523 | a.sigBytes -= 16 1524 | } 1525 | return n.create({ 1526 | ciphertext: a, 1527 | salt: c 1528 | }) 1529 | } 1530 | } 1531 | , a = d.SerializableCipher = l.extend({ 1532 | cfg: l.extend({ 1533 | format: b 1534 | }), 1535 | encrypt: function (a, b, c, d) { 1536 | d = this.cfg.extend(d); 1537 | var l = a.createEncryptor(c, d); 1538 | b = l.finalize(b); 1539 | l = l.cfg; 1540 | return n.create({ 1541 | ciphertext: b, 1542 | key: c, 1543 | iv: l.iv, 1544 | algorithm: a, 1545 | mode: l.mode, 1546 | padding: l.padding, 1547 | blockSize: a.blockSize, 1548 | formatter: d.format 1549 | }) 1550 | }, 1551 | decrypt: function (a, b, c, d) { 1552 | d = this.cfg.extend(d); 1553 | b = this._parse(b, d.format); 1554 | return a.createDecryptor(c, d).finalize(b.ciphertext) 1555 | }, 1556 | _parse: function (a, b) { 1557 | return "string" == typeof a ? b.parse(a, this) : a 1558 | } 1559 | }) 1560 | , p = (p.kdf = {}).OpenSSL = { 1561 | execute: function (a, b, c, d) { 1562 | d || (d = s.random(8)); 1563 | a = w.create({ 1564 | keySize: b + c 1565 | }).compute(a, d); 1566 | c = s.create(a.words.slice(b), 4 * c); 1567 | a.sigBytes = 4 * b; 1568 | return n.create({ 1569 | key: a, 1570 | iv: c, 1571 | salt: d 1572 | }) 1573 | } 1574 | } 1575 | , c = d.PasswordBasedCipher = a.extend({ 1576 | cfg: a.cfg.extend({ 1577 | kdf: p 1578 | }), 1579 | encrypt: function (b, c, d, l) { 1580 | l = this.cfg.extend(l); 1581 | d = l.kdf.execute(d, b.keySize, b.ivSize); 1582 | l.iv = d.iv; 1583 | b = a.encrypt.call(this, b, c, d.key, l); 1584 | b.mixIn(d); 1585 | return b 1586 | }, 1587 | decrypt: function (b, c, d, l) { 1588 | l = this.cfg.extend(l); 1589 | c = this._parse(c, l.format); 1590 | d = l.kdf.execute(d, b.keySize, b.ivSize, c.salt); 1591 | l.iv = d.iv; 1592 | return a.decrypt.call(this, b, c, d.key, l) 1593 | } 1594 | }) 1595 | }(); 1596 | (function () { 1597 | for (var u = CryptoJS, p = u.lib.BlockCipher, d = u.algo, l = [], s = [], t = [], r = [], w = [], v = [], b = [], x = [], q = [], n = [], a = [], c = 0; 256 > c; c++) 1598 | a[c] = 128 > c ? c << 1 : c << 1 ^ 283; 1599 | for (var e = 0, j = 0, c = 0; 256 > c; c++) { 1600 | var k = j ^ j << 1 ^ j << 2 ^ j << 3 ^ j << 4 1601 | , k = k >>> 8 ^ k & 255 ^ 99; 1602 | l[e] = k; 1603 | s[k] = e; 1604 | var z = a[e] 1605 | , F = a[z] 1606 | , G = a[F] 1607 | , y = 257 * a[k] ^ 16843008 * k; 1608 | t[e] = y << 24 | y >>> 8; 1609 | r[e] = y << 16 | y >>> 16; 1610 | w[e] = y << 8 | y >>> 24; 1611 | v[e] = y; 1612 | y = 16843009 * G ^ 65537 * F ^ 257 * z ^ 16843008 * e; 1613 | b[k] = y << 24 | y >>> 8; 1614 | x[k] = y << 16 | y >>> 16; 1615 | q[k] = y << 8 | y >>> 24; 1616 | n[k] = y; 1617 | e ? (e = z ^ a[a[a[G ^ z]]], 1618 | j ^= a[a[j]]) : e = j = 1 1619 | } 1620 | var H = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54] 1621 | , d = d.AES = p.extend({ 1622 | _doReset: function () { 1623 | for (var a = this._key, c = a.words, d = a.sigBytes / 4, a = 4 * ((this._nRounds = d + 6) + 1), e = this._keySchedule = [], j = 0; j < a; j++) 1624 | if (j < d) 1625 | e[j] = c[j]; 1626 | else { 1627 | var k = e[j - 1]; 1628 | j % d ? 6 < d && 4 == j % d && (k = l[k >>> 24] << 24 | l[k >>> 16 & 255] << 16 | l[k >>> 8 & 255] << 8 | l[k & 255]) : (k = k << 8 | k >>> 24, 1629 | k = l[k >>> 24] << 24 | l[k >>> 16 & 255] << 16 | l[k >>> 8 & 255] << 8 | l[k & 255], 1630 | k ^= H[j / d | 0] << 24); 1631 | e[j] = e[j - d] ^ k 1632 | } 1633 | c = this._invKeySchedule = []; 1634 | for (d = 0; d < a; d++) 1635 | j = a - d, 1636 | k = d % 4 ? e[j] : e[j - 4], 1637 | c[d] = 4 > d || 4 >= j ? k : b[l[k >>> 24]] ^ x[l[k >>> 16 & 255]] ^ q[l[k >>> 8 & 255]] ^ n[l[k & 255]] 1638 | }, 1639 | encryptBlock: function (a, b) { 1640 | this._doCryptBlock(a, b, this._keySchedule, t, r, w, v, l) 1641 | }, 1642 | decryptBlock: function (a, c) { 1643 | var d = a[c + 1]; 1644 | a[c + 1] = a[c + 3]; 1645 | a[c + 3] = d; 1646 | this._doCryptBlock(a, c, this._invKeySchedule, b, x, q, n, s); 1647 | d = a[c + 1]; 1648 | a[c + 1] = a[c + 3]; 1649 | a[c + 3] = d 1650 | }, 1651 | _doCryptBlock: function (a, b, c, d, e, j, l, f) { 1652 | for (var m = this._nRounds, g = a[b] ^ c[0], h = a[b + 1] ^ c[1], k = a[b + 2] ^ c[2], n = a[b + 3] ^ c[3], p = 4, r = 1; r < m; r++) 1653 | var q = d[g >>> 24] ^ e[h >>> 16 & 255] ^ j[k >>> 8 & 255] ^ l[n & 255] ^ c[p++] 1654 | , s = d[h >>> 24] ^ e[k >>> 16 & 255] ^ j[n >>> 8 & 255] ^ l[g & 255] ^ c[p++] 1655 | , t = d[k >>> 24] ^ e[n >>> 16 & 255] ^ j[g >>> 8 & 255] ^ l[h & 255] ^ c[p++] 1656 | , n = d[n >>> 24] ^ e[g >>> 16 & 255] ^ j[h >>> 8 & 255] ^ l[k & 255] ^ c[p++] 1657 | , g = q 1658 | , h = s 1659 | , k = t; 1660 | q = (f[g >>> 24] << 24 | f[h >>> 16 & 255] << 16 | f[k >>> 8 & 255] << 8 | f[n & 255]) ^ c[p++]; 1661 | s = (f[h >>> 24] << 24 | f[k >>> 16 & 255] << 16 | f[n >>> 8 & 255] << 8 | f[g & 255]) ^ c[p++]; 1662 | t = (f[k >>> 24] << 24 | f[n >>> 16 & 255] << 16 | f[g >>> 8 & 255] << 8 | f[h & 255]) ^ c[p++]; 1663 | n = (f[n >>> 24] << 24 | f[g >>> 16 & 255] << 16 | f[h >>> 8 & 255] << 8 | f[k & 255]) ^ c[p++]; 1664 | a[b] = q; 1665 | a[b + 1] = s; 1666 | a[b + 2] = t; 1667 | a[b + 3] = n 1668 | }, 1669 | keySize: 8 1670 | }); 1671 | u.AES = p._createHelper(d) 1672 | } 1673 | )(); 1674 | 1675 | var com = {}; 1676 | com.str = { 1677 | _KEY: "12345678900000001234567890000000",//32λ 1678 | _IV: "abcd134556abcedf",//16λ 1679 | Encrypt: function (str) { 1680 | var key = CryptoJS.enc.Utf8.parse(this._KEY); 1681 | var iv = CryptoJS.enc.Utf8.parse(this._IV); 1682 | 1683 | var encrypted = ''; 1684 | 1685 | var srcs = CryptoJS.enc.Utf8.parse(str); 1686 | encrypted = CryptoJS.AES.encrypt(srcs, key, { 1687 | iv: iv, 1688 | mode: CryptoJS.mode.CBC, 1689 | padding: CryptoJS.pad.Pkcs7 1690 | }); 1691 | 1692 | return encrypted.ciphertext.toString(); 1693 | }, 1694 | 1695 | Decrypt: function (str) { 1696 | var result = com.str.DecryptInner(str); 1697 | try { 1698 | var newstr = com.str.DecryptInner(result); 1699 | if (newstr != "") { 1700 | result = newstr; 1701 | } 1702 | } catch (ex) { 1703 | var msg = ex; 1704 | } 1705 | return result; 1706 | }, 1707 | DecryptInner: function (str) { 1708 | var key = CryptoJS.enc.Utf8.parse(this._KEY); 1709 | var iv = CryptoJS.enc.Utf8.parse(this._IV); 1710 | var encryptedHexStr = CryptoJS.enc.Hex.parse(str); 1711 | var srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr); 1712 | var decrypt = CryptoJS.AES.decrypt(srcs, key, { 1713 | iv: iv, 1714 | mode: CryptoJS.mode.CBC, 1715 | padding: CryptoJS.pad.Pkcs7 1716 | }); 1717 | var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8); 1718 | var result = decryptedStr.toString(); 1719 | try { 1720 | result = Decrypt(result); 1721 | } catch (ex) { 1722 | var msg = ex; 1723 | } 1724 | return result; 1725 | } 1726 | } 1727 | 1728 | 1729 | function iemap(myarray, callback, thisArg) { 1730 | 1731 | var T, A, k; 1732 | 1733 | if (myarray == null) { 1734 | throw new TypeError(" this is null or not defined"); 1735 | } 1736 | var O = Object(myarray); 1737 | 1738 | var len = O.length >>> 0; 1739 | if (typeof callback !== "function") { 1740 | throw new TypeError(callback + " is not a function"); 1741 | } 1742 | 1743 | // 5. If thisArg was supplied, let T be thisArg; else let T be undefined. 1744 | if (thisArg) { 1745 | T = thisArg; 1746 | } 1747 | 1748 | A = new Array(len); 1749 | k = 0; 1750 | while (k < len) { 1751 | var kValue, mappedValue; 1752 | if (k in O) { 1753 | kValue = O[k]; 1754 | mappedValue = callback.call(T, kValue, k, O); 1755 | 1756 | A[k] = mappedValue; 1757 | } 1758 | k++; 1759 | } 1760 | return A; 1761 | }; 1762 | 1763 | function GetJs(RunEval) { 1764 | return unzip(RunEval); 1765 | } 1766 | 1767 | function EvalKey(js1, js2) { 1768 | eval(js1); 1769 | $hidescript = $hidescript.split("") 1770 | return eval(js2); 1771 | } 1772 | 1773 | function UpdateKey(key) { 1774 | com.str._KEY = key; 1775 | } 1776 | 1777 | function DecryptDocID(key, id) { 1778 | if (key) { 1779 | UpdateKey(key); 1780 | } 1781 | var unzipid = unzip(id); 1782 | var realid = com.str.Decrypt(unzipid); 1783 | return realid; 1784 | } -------------------------------------------------------------------------------- /gland_mmewmd/README.md: -------------------------------------------------------------------------------- 1 | # goland 2 | 3 | 4 | ## 项目介绍 5 | ` 6 | "goquery" goland css解析器 7 | "github.com/robertkrimen/otto" 执行js类似python的execjs 8 | ` 9 | 10 | ` 11 | var ( 12 | encryptPath = `encrypt.js` 绝对路径 13 | ywtuPath = `ywtu.js` 绝对路径 14 | vjkl5 = `vjkl5.js` 绝对路径 15 | ) 16 | ` 17 | 18 | ` 19 | var c Cookies 20 | c.GetCookie() 获取80T,80S 21 | c.execjs() js生成新80T 22 | c.Guid = `8df4cd4f-0d91-23411994-4bd54ad7a846` 23 | c.Number = `wens` 24 | c.SetCookie() 获取vjkl5,Vl5x值 25 | c.WenShuList() 测试列表页数据 26 | 27 | ` 28 | 29 | -------------------------------------------------------------------------------- /gland_mmewmd/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sml2h3/mmewmd_crack_for_wenshu/a7cba1446474c629e9725556a3b43fa656ec622c/gland_mmewmd/github.png -------------------------------------------------------------------------------- /gland_mmewmd/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "net/url" 5 | "fmt" 6 | "github.com/satori/go.uuid" 7 | "net/http" 8 | "time" 9 | "strings" 10 | "io/ioutil" 11 | "goquery" 12 | "regexp" 13 | "github.com/robertkrimen/otto" 14 | "github.com/wonderivan/logger" 15 | ) 16 | 17 | 18 | type Cookies struct { 19 | C80T string 20 | C80S string 21 | Meta string 22 | Guid string 23 | Number string 24 | Vjkl5 string 25 | Vl5x string 26 | } 27 | 28 | var ( 29 | encryptPath = `/home/jialele/go/src/iris_test/wenshu/encrypt.js` 30 | ywtuPath = `/home/jialele/go/src/iris_test/wenshu/ywtu.js` 31 | vjkl5 = `/home/jialele/go/src/iris_test/wenshu/vjkl5.js` 32 | ) 33 | 34 | func main() { 35 | var c Cookies 36 | c.GetCookie() 37 | c.execjs() 38 | c.Guid = `8df4cd4f-0d91-23411994-4bd54ad7a846` 39 | c.Number = `wens` 40 | c.SetCookie() 41 | c.WenShuList() 42 | } 43 | 44 | func (c *Cookies) execjs( ) { 45 | logger.Info("[--------Get---Cookie---80T-------]") 46 | js1,e := ioutil.ReadFile(encryptPath) 47 | js2,e := ioutil.ReadFile(ywtuPath) 48 | if e !=nil{ 49 | panic(e) 50 | } 51 | mv1 := otto.New() 52 | mv2 := otto.New() 53 | mv1.Run(string(js1)) 54 | mv2.Run(string(js2)) 55 | ywtu ,e:= mv2.Call(`getc`,nil,c.Meta) 56 | res ,e := mv1.Call("getCookies",nil,c.Meta,c.C80T,ywtu.String()) 57 | c.C80T = res.String() 58 | logger.Info("Cookie 80T : < %s >",res.String()) 59 | 60 | } 61 | func(c *Cookies) SetCookie() { 62 | logger.Info("[--------Get---Vjkl5-------]") 63 | url := fmt.Sprintf("http://wenshu.court.gov.cn/list/list/?sorttype=1&guid=%s&number=%s",c.Guid,c.Number) 64 | client := http.Client{} 65 | req,err:= http.NewRequest("GET",url,nil) 66 | req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36") 67 | req.Header.Set("Cookie",fmt.Sprintf("FSSBBIl1UgzbN7N80S=%s;FSSBBIl1UgzbN7N80T=%s",c.C80S,c.C80T)) 68 | if err != nil { 69 | fmt.Println(err) 70 | } 71 | response, err := client.Do(req) 72 | defer response.Body.Close() 73 | if err != nil { 74 | fmt.Println(err) 75 | } 76 | cookie := response.Header.Get("Set-Cookie") 77 | re := regexp.MustCompile("vjkl5=(.*?);") 78 | vjkl5 := re.FindStringSubmatch(cookie)[1] 79 | c.Vjkl5 = vjkl5 80 | c.Vl5x = GetVjkl5(vjkl5) 81 | logger.Info("vjkl5 : < %s >",c.Vjkl5) 82 | logger.Info("Vl5x : < %s >",c.Vl5x) 83 | 84 | } 85 | func GetVjkl5(key string) string{ 86 | 87 | js,_ := ioutil.ReadFile(vjkl5) 88 | mv := otto.New() 89 | mv.Run(js) 90 | res,_ :=mv.Call("getKey",nil,key) 91 | return res.String() 92 | 93 | } 94 | func (c *Cookies) GetCookie() { 95 | logger.Info("[--------Get---Cookies-------]") 96 | codeUrl := "http://wenshu.court.gov.cn/list/list/?sorttype=1" 97 | client := http.Client{Timeout:60*time.Second} 98 | req,err:= http.NewRequest("GET",codeUrl,nil) 99 | if err != nil { 100 | fmt.Println(err) 101 | } 102 | req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36") 103 | req.Header.Set("Content-Type","application/x-www-form-urlencoded;charset=UTF-8") 104 | response, err := client.Do(req) 105 | defer response.Body.Close() 106 | if err != nil { 107 | fmt.Println(err) 108 | } 109 | cookie := response.Cookies() 110 | FSSBBIl1UgzbN7N80T := "" 111 | FSSBBIl1UgzbN7N80S := "" 112 | for _,v := range cookie{ 113 | if v.Name == `FSSBBIl1UgzbN7N80T`{ 114 | FSSBBIl1UgzbN7N80T = v.Value 115 | } 116 | if v.Name == `FSSBBIl1UgzbN7N80S` { 117 | FSSBBIl1UgzbN7N80S = v.Value 118 | } 119 | } 120 | doc,_ :=goquery.NewDocumentFromReader(response.Body) 121 | meta,_ := doc.Find(`#9DhefwqGPrzGxEp9hPaoag`).Attr(`content`) 122 | c.C80S = FSSBBIl1UgzbN7N80S 123 | c.C80T = FSSBBIl1UgzbN7N80T 124 | c.Meta = strings.TrimSpace(meta) 125 | logger.Info("Cookies get Success!") 126 | } 127 | 128 | func(c *Cookies) GetNumber() { 129 | logger.Info("[--------Get---GetNumber-------]") 130 | var postData = url.Values{} 131 | gd,_ := uuid.NewV4() 132 | guid :=gd.String() 133 | codeUrl := "http://wenshu.court.gov.cn/ValiCode/GetCode?" 134 | client := http.Client{Timeout:60*time.Second} 135 | postData.Add("guid",guid) 136 | data := postData.Encode() 137 | req,err:= http.NewRequest("POST",codeUrl,strings.NewReader(data)) 138 | if err != nil { 139 | fmt.Println(err) 140 | } 141 | req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36") 142 | req.Header.Set("Content-Type","application/x-www-form-urlencoded;charset=UTF-8") 143 | response, err := client.Do(req) 144 | defer response.Body.Close() 145 | if err != nil { 146 | fmt.Println(err) 147 | } 148 | number,_ := ioutil.ReadAll(response.Body) 149 | if response.StatusCode == http.StatusOK{ 150 | c.Guid = guid 151 | c.Number = string(number) 152 | } 153 | logger.Info("Number < %s >",number) 154 | } 155 | 156 | func (c *Cookies) WenShuList() { 157 | logger.Info("[--------Get---List--Information-------]") 158 | var postData = url.Values{} 159 | url := "http://wenshu.court.gov.cn/List/ListContent" 160 | postData.Add("Param","案件类型:民事案件") 161 | postData.Add("Index","1") 162 | postData.Add("Page","10") 163 | postData.Add("Order","法院层级") 164 | postData.Add("Direction","asc") 165 | postData.Add("vl5x",c.Vl5x) 166 | postData.Add("number",c.Number) 167 | postData.Add("guid",c.Guid) 168 | data := postData.Encode() 169 | client := &http.Client{} 170 | request, _ := http.NewRequest("POST", url, strings.NewReader(data)) 171 | request.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36") 172 | request.Header.Set("Content-Type","application/x-www-form-urlencoded;charset=UTF-8") 173 | request.Header.Set("Cookie",fmt.Sprintf("FSSBBIl1UgzbN7N80S=%s;FSSBBIl1UgzbN7N80T=%s;vjkl5=%s",c.C80S,c.C80T,c.Vjkl5)) 174 | response, err := client.Do(request) 175 | defer response.Body.Close() 176 | if err != nil { 177 | fmt.Println(err) 178 | } 179 | res,_ := ioutil.ReadAll(response.Body) 180 | fmt.Println(string(res)) 181 | } 182 | 183 | 184 | -------------------------------------------------------------------------------- /gland_mmewmd/vjkl5.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 加密获取参数vl5x 3 | */ 4 | var hexcase = 0; 5 | var b64pad = ""; 6 | var chrsz = 8; 7 | 8 | function hex_sha1(s) { 9 | return binb2hex(core_sha1(str2binb(s), s.length * chrsz)); 10 | } 11 | 12 | 13 | function sha1_vm_test() { 14 | return hex_sha1("abc") == "a9993e364706816aba3e25717850c26c9cd0d89d"; 15 | } 16 | 17 | function core_sha1(x, len) { 18 | 19 | x[len >> 5] |= 0x80 << (24 - len % 32); 20 | x[((len + 64 >> 9) << 4) + 15] = len; 21 | 22 | var w = Array(80); 23 | var a = 1732584193; 24 | var b = -271733879; 25 | var c = -1732584194; 26 | var d = 271733878; 27 | var e = -1009589776; 28 | 29 | for (var i = 0; i < x.length; i += 16) { 30 | var olda = a; 31 | var oldb = b; 32 | var oldc = c; 33 | var oldd = d; 34 | var olde = e; 35 | 36 | for (var j = 0; j < 80; j++) { 37 | if (j < 16) w[j] = x[i + j]; 38 | else w[j] = rol(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1); 39 | var t = safe_add(safe_add(rol(a, 5), sha1_ft(j, b, c, d)), safe_add(safe_add(e, w[j]), sha1_kt(j))); 40 | e = d; 41 | d = c; 42 | c = rol(b, 30); 43 | b = a; 44 | a = t; 45 | } 46 | 47 | a = safe_add(a, olda); 48 | b = safe_add(b, oldb); 49 | c = safe_add(c, oldc); 50 | d = safe_add(d, oldd); 51 | e = safe_add(e, olde); 52 | } 53 | return Array(a, b, c, d, e); 54 | 55 | } 56 | 57 | 58 | function sha1_ft(t, b, c, d) { 59 | if (t < 20) return (b & c) | ((~b) & d); 60 | if (t < 40) return b ^ c ^ d; 61 | if (t < 60) return (b & c) | (b & d) | (c & d); 62 | return b ^ c ^ d; 63 | } 64 | 65 | 66 | function sha1_kt(t) { 67 | return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 : (t < 60) ? -1894007588 : -899497514; 68 | } 69 | 70 | 71 | function core_hmac_sha1(key, data) { 72 | var bkey = str2binb(key); 73 | if (bkey.length > 16) bkey = core_sha1(bkey, key.length * chrsz); 74 | 75 | var ipad = Array(16), 76 | opad = Array(16); 77 | for (var i = 0; i < 16; i++) { 78 | ipad[i] = bkey[i] ^ 0x36363636; 79 | opad[i] = bkey[i] ^ 0x5C5C5C5C; 80 | } 81 | 82 | var hash = core_sha1(ipad.concat(str2binb(data)), 512 + data.length * chrsz); 83 | return core_sha1(opad.concat(hash), 512 + 160); 84 | } 85 | 86 | function safe_add(x, y) { 87 | var lsw = (x & 0xFFFF) + (y & 0xFFFF); 88 | var msw = (x >> 16) + (y >> 16) + (lsw >> 16); 89 | return (msw << 16) | (lsw & 0xFFFF); 90 | } 91 | 92 | function rol(num, cnt) { 93 | return (num << cnt) | (num >>> (32 - cnt)); 94 | } 95 | 96 | function str2binb(str) { 97 | var bin = Array(); 98 | var mask = (1 << chrsz) - 1; 99 | for (var i = 0; i < str.length * chrsz; i += chrsz) 100 | bin[i >> 5] |= (str.charCodeAt(i / chrsz) & mask) << (24 - i % 32); 101 | return bin; 102 | } 103 | 104 | function binb2str(bin) { 105 | var str = ""; 106 | var mask = (1 << chrsz) - 1; 107 | for (var i = 0; i < bin.length * 32; i += chrsz) 108 | str += String.fromCharCode((bin[i >> 5] >>> (24 - i % 32)) & mask); 109 | return str; 110 | } 111 | 112 | function binb2hex(binarray) { 113 | var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; 114 | var str = ""; 115 | for (var i = 0; i < binarray.length * 4; i++) { 116 | str += hex_tab.charAt((binarray[i >> 2] >> ((3 - i % 4) * 8 + 4)) & 0xF) + hex_tab.charAt((binarray[i >> 2] >> ((3 - i % 4) * 8)) & 0xF); 117 | } 118 | return str; 119 | } 120 | 121 | function binb2b64(binarray) { 122 | var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; 123 | var str = ""; 124 | for (var i = 0; i < binarray.length * 4; i += 3) { 125 | var triplet = (((binarray[i >> 2] >> 8 * (3 - i % 4)) & 0xFF) << 16) | (((binarray[i + 1 >> 2] >> 8 * (3 - (i + 1) % 4)) & 0xFF) << 8) | ((binarray[i + 2 >> 2] >> 8 * (3 - (i + 2) % 4)) & 0xFF); 126 | for (var j = 0; j < 4; j++) { 127 | if (i * 8 + j * 6 > binarray.length * 32) str += b64pad; 128 | else str += tab.charAt((triplet >> 6 * (3 - j)) & 0x3F); 129 | } 130 | } 131 | return str; 132 | } 133 | 134 | function Base64() { 135 | 136 | _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; 137 | 138 | this.encode = function (input) { 139 | var output = ""; 140 | var chr1, chr2, chr3, enc1, enc2, enc3, enc4; 141 | var i = 0; 142 | input = _utf8_encode(input); 143 | while (i < input.length) { 144 | chr1 = input.charCodeAt(i++); 145 | chr2 = input.charCodeAt(i++); 146 | chr3 = input.charCodeAt(i++); 147 | enc1 = chr1 >> 2; 148 | enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); 149 | enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); 150 | enc4 = chr3 & 63; 151 | if (isNaN(chr2)) { 152 | enc3 = enc4 = 64; 153 | } else if (isNaN(chr3)) { 154 | enc4 = 64; 155 | } 156 | output = output + 157 | _keyStr.charAt(enc1) + _keyStr.charAt(enc2) + 158 | _keyStr.charAt(enc3) + _keyStr.charAt(enc4); 159 | } 160 | return output; 161 | } 162 | 163 | this.decode = function (input) { 164 | var output = ""; 165 | var chr1, chr2, chr3; 166 | var enc1, enc2, enc3, enc4; 167 | var i = 0; 168 | input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); 169 | while (i < input.length) { 170 | enc1 = _keyStr.indexOf(input.charAt(i++)); 171 | enc2 = _keyStr.indexOf(input.charAt(i++)); 172 | enc3 = _keyStr.indexOf(input.charAt(i++)); 173 | enc4 = _keyStr.indexOf(input.charAt(i++)); 174 | chr1 = (enc1 << 2) | (enc2 >> 4); 175 | chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); 176 | chr3 = ((enc3 & 3) << 6) | enc4; 177 | output = output + String.fromCharCode(chr1); 178 | if (enc3 != 64) { 179 | output = output + String.fromCharCode(chr2); 180 | } 181 | if (enc4 != 64) { 182 | output = output + String.fromCharCode(chr3); 183 | } 184 | } 185 | output = _utf8_decode(output); 186 | return output; 187 | } 188 | 189 | _utf8_encode = function (string) { 190 | string = string.replace(/\r\n/g, "\n"); 191 | var utftext = ""; 192 | for (var n = 0; n < string.length; n++) { 193 | var c = string.charCodeAt(n); 194 | if (c < 128) { 195 | utftext += String.fromCharCode(c); 196 | } else if ((c > 127) && (c < 2048)) { 197 | utftext += String.fromCharCode((c >> 6) | 192); 198 | utftext += String.fromCharCode((c & 63) | 128); 199 | } else { 200 | utftext += String.fromCharCode((c >> 12) | 224); 201 | utftext += String.fromCharCode(((c >> 6) & 63) | 128); 202 | utftext += String.fromCharCode((c & 63) | 128); 203 | } 204 | 205 | } 206 | return utftext; 207 | } 208 | 209 | _utf8_decode = function (utftext) { 210 | var string = ""; 211 | var i = 0; 212 | var c = c1 = c2 = 0; 213 | while (i < utftext.length) { 214 | c = utftext.charCodeAt(i); 215 | if (c < 128) { 216 | string += String.fromCharCode(c); 217 | i++; 218 | } else if ((c > 191) && (c < 224)) { 219 | c2 = utftext.charCodeAt(i + 1); 220 | string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); 221 | i += 2; 222 | } else { 223 | c2 = utftext.charCodeAt(i + 1); 224 | c3 = utftext.charCodeAt(i + 2); 225 | string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); 226 | i += 3; 227 | } 228 | } 229 | return string; 230 | } 231 | } 232 | 233 | var hexcase = 0; 234 | var b64pad = ""; 235 | var chrsz = 8; 236 | 237 | function hex_md5(s) { 238 | return binl2hex(core_md5(str2binl(s), s.length * chrsz)); 239 | } 240 | 241 | function core_md5(x, len) { 242 | 243 | x[len >> 5] |= 0x80 << ((len) % 32); 244 | x[(((len + 64) >>> 9) << 4) + 14] = len; 245 | 246 | var a = 1732584193; 247 | var b = -271733879; 248 | var c = -1732584194; 249 | var d = 271733878; 250 | 251 | for (var i = 0; i < x.length; i += 16) { 252 | var olda = a; 253 | var oldb = b; 254 | var oldc = c; 255 | var oldd = d; 256 | 257 | a = md5_ff(a, b, c, d, x[i + 0], 7, -680876936); 258 | d = md5_ff(d, a, b, c, x[i + 1], 12, -389564586); 259 | c = md5_ff(c, d, a, b, x[i + 2], 17, 606105819); 260 | b = md5_ff(b, c, d, a, x[i + 3], 22, -1044525330); 261 | a = md5_ff(a, b, c, d, x[i + 4], 7, -176418897); 262 | d = md5_ff(d, a, b, c, x[i + 5], 12, 1200080426); 263 | c = md5_ff(c, d, a, b, x[i + 6], 17, -1473231341); 264 | b = md5_ff(b, c, d, a, x[i + 7], 22, -45705983); 265 | a = md5_ff(a, b, c, d, x[i + 8], 7, 1770035416); 266 | d = md5_ff(d, a, b, c, x[i + 9], 12, -1958414417); 267 | c = md5_ff(c, d, a, b, x[i + 10], 17, -42063); 268 | b = md5_ff(b, c, d, a, x[i + 11], 22, -1990404162); 269 | a = md5_ff(a, b, c, d, x[i + 12], 7, 1804603682); 270 | d = md5_ff(d, a, b, c, x[i + 13], 12, -40341101); 271 | c = md5_ff(c, d, a, b, x[i + 14], 17, -1502002290); 272 | b = md5_ff(b, c, d, a, x[i + 15], 22, 1236535329); 273 | 274 | a = md5_gg(a, b, c, d, x[i + 1], 5, -165796510); 275 | d = md5_gg(d, a, b, c, x[i + 6], 9, -1069501632); 276 | c = md5_gg(c, d, a, b, x[i + 11], 14, 643717713); 277 | b = md5_gg(b, c, d, a, x[i + 0], 20, -373897302); 278 | a = md5_gg(a, b, c, d, x[i + 5], 5, -701558691); 279 | d = md5_gg(d, a, b, c, x[i + 10], 9, 38016083); 280 | c = md5_gg(c, d, a, b, x[i + 15], 14, -660478335); 281 | b = md5_gg(b, c, d, a, x[i + 4], 20, -405537848); 282 | a = md5_gg(a, b, c, d, x[i + 9], 5, 568446438); 283 | d = md5_gg(d, a, b, c, x[i + 14], 9, -1019803690); 284 | c = md5_gg(c, d, a, b, x[i + 3], 14, -187363961); 285 | b = md5_gg(b, c, d, a, x[i + 8], 20, 1163531501); 286 | a = md5_gg(a, b, c, d, x[i + 13], 5, -1444681467); 287 | d = md5_gg(d, a, b, c, x[i + 2], 9, -51403784); 288 | c = md5_gg(c, d, a, b, x[i + 7], 14, 1735328473); 289 | b = md5_gg(b, c, d, a, x[i + 12], 20, -1926607734); 290 | 291 | a = md5_hh(a, b, c, d, x[i + 5], 4, -378558); 292 | d = md5_hh(d, a, b, c, x[i + 8], 11, -2022574463); 293 | c = md5_hh(c, d, a, b, x[i + 11], 16, 1839030562); 294 | b = md5_hh(b, c, d, a, x[i + 14], 23, -35309556); 295 | a = md5_hh(a, b, c, d, x[i + 1], 4, -1530992060); 296 | d = md5_hh(d, a, b, c, x[i + 4], 11, 1272893353); 297 | c = md5_hh(c, d, a, b, x[i + 7], 16, -155497632); 298 | b = md5_hh(b, c, d, a, x[i + 10], 23, -1094730640); 299 | a = md5_hh(a, b, c, d, x[i + 13], 4, 681279174); 300 | d = md5_hh(d, a, b, c, x[i + 0], 11, -358537222); 301 | c = md5_hh(c, d, a, b, x[i + 3], 16, -722521979); 302 | b = md5_hh(b, c, d, a, x[i + 6], 23, 76029189); 303 | a = md5_hh(a, b, c, d, x[i + 9], 4, -640364487); 304 | d = md5_hh(d, a, b, c, x[i + 12], 11, -421815835); 305 | c = md5_hh(c, d, a, b, x[i + 15], 16, 530742520); 306 | b = md5_hh(b, c, d, a, x[i + 2], 23, -995338651); 307 | 308 | a = md5_ii(a, b, c, d, x[i + 0], 6, -198630844); 309 | d = md5_ii(d, a, b, c, x[i + 7], 10, 1126891415); 310 | c = md5_ii(c, d, a, b, x[i + 14], 15, -1416354905); 311 | b = md5_ii(b, c, d, a, x[i + 5], 21, -57434055); 312 | a = md5_ii(a, b, c, d, x[i + 12], 6, 1700485571); 313 | d = md5_ii(d, a, b, c, x[i + 3], 10, -1894986606); 314 | c = md5_ii(c, d, a, b, x[i + 10], 15, -1051523); 315 | b = md5_ii(b, c, d, a, x[i + 1], 21, -2054922799); 316 | a = md5_ii(a, b, c, d, x[i + 8], 6, 1873313359); 317 | d = md5_ii(d, a, b, c, x[i + 15], 10, -30611744); 318 | c = md5_ii(c, d, a, b, x[i + 6], 15, -1560198380); 319 | b = md5_ii(b, c, d, a, x[i + 13], 21, 1309151649); 320 | a = md5_ii(a, b, c, d, x[i + 4], 6, -145523070); 321 | d = md5_ii(d, a, b, c, x[i + 11], 10, -1120210379); 322 | c = md5_ii(c, d, a, b, x[i + 2], 15, 718787259); 323 | b = md5_ii(b, c, d, a, x[i + 9], 21, -343485551); 324 | 325 | a = safe_add(a, olda); 326 | b = safe_add(b, oldb); 327 | c = safe_add(c, oldc); 328 | d = safe_add(d, oldd); 329 | } 330 | return Array(a, b, c, d); 331 | 332 | } 333 | 334 | function md5_cmn(q, a, b, x, s, t) { 335 | return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b); 336 | } 337 | 338 | function md5_ff(a, b, c, d, x, s, t) { 339 | return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t); 340 | } 341 | 342 | function md5_gg(a, b, c, d, x, s, t) { 343 | return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t); 344 | } 345 | 346 | function md5_hh(a, b, c, d, x, s, t) { 347 | return md5_cmn(b ^ c ^ d, a, b, x, s, t); 348 | } 349 | 350 | function md5_ii(a, b, c, d, x, s, t) { 351 | return md5_cmn(c ^ (b | (~d)), a, b, x, s, t); 352 | } 353 | 354 | function core_hmac_md5(key, data) { 355 | var bkey = str2binl(key); 356 | if (bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz); 357 | 358 | var ipad = Array(16), opad = Array(16); 359 | for (var i = 0; i < 16; i++) { 360 | ipad[i] = bkey[i] ^ 0x36363636; 361 | opad[i] = bkey[i] ^ 0x5C5C5C5C; 362 | } 363 | 364 | var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz); 365 | return core_md5(opad.concat(hash), 512 + 128); 366 | } 367 | 368 | function safe_add(x, y) { 369 | var lsw = (x & 0xFFFF) + (y & 0xFFFF); 370 | var msw = (x >> 16) + (y >> 16) + (lsw >> 16); 371 | return (msw << 16) | (lsw & 0xFFFF); 372 | } 373 | 374 | function bit_rol(num, cnt) { 375 | return (num << cnt) | (num >>> (32 - cnt)); 376 | } 377 | 378 | function str2binl(str) { 379 | var bin = Array(); 380 | var mask = (1 << chrsz) - 1; 381 | for (var i = 0; i < str.length * chrsz; i += chrsz) 382 | bin[i >> 5] |= (str.charCodeAt(i / chrsz) & mask) << (i % 32); 383 | return bin; 384 | } 385 | 386 | function binl2str(bin) { 387 | var str = ""; 388 | var mask = (1 << chrsz) - 1; 389 | for (var i = 0; i < bin.length * 32; i += chrsz) 390 | str += String.fromCharCode((bin[i >> 5] >>> (i % 32)) & mask); 391 | return str; 392 | } 393 | 394 | function binl2hex(binarray) { 395 | var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; 396 | var str = ""; 397 | for (var i = 0; i < binarray.length * 4; i++) { 398 | str += hex_tab.charAt((binarray[i >> 2] >> ((i % 4) * 8 + 4)) & 0xF) + 399 | hex_tab.charAt((binarray[i >> 2] >> ((i % 4) * 8)) & 0xF); 400 | } 401 | return str; 402 | } 403 | 404 | function binl2b64(binarray) { 405 | var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; 406 | var str = ""; 407 | for (var i = 0; i < binarray.length * 4; i += 3) { 408 | var triplet = (((binarray[i >> 2] >> 8 * (i % 4)) & 0xFF) << 16) 409 | | (((binarray[i + 1 >> 2] >> 8 * ((i + 1) % 4)) & 0xFF) << 8) 410 | | ((binarray[i + 2 >> 2] >> 8 * ((i + 2) % 4)) & 0xFF); 411 | for (var j = 0; j < 4; j++) { 412 | if (i * 8 + j * 6 > binarray.length * 32) str += b64pad; 413 | else str += tab.charAt((triplet >> 6 * (3 - j)) & 0x3F); 414 | } 415 | } 416 | return str; 417 | } 418 | 419 | function getKey(cookie) { 420 | function de(str, count, strReplace) { 421 | var arrReplace = strReplace.split("|"); 422 | for (var i = 0; i < count; i++) { 423 | str = str.replace(new RegExp("\\{" + i + "\\}", "g"), arrReplace[i]) 424 | } 425 | return str 426 | } 427 | 428 | function strToLong(str) { 429 | var long = 0; 430 | for (var i = 0; i < str.length; i++) { 431 | long += (str.charCodeAt(i) << (i % 16)) 432 | } 433 | return long 434 | } 435 | 436 | function strToLongEn(str) { 437 | var long = 0; 438 | for (var i = 0; i < str.length; i++) { 439 | long += (str.charCodeAt(i) << (i % 16)) + i 440 | } 441 | return long 442 | } 443 | 444 | function strToLongEn2(str, step) { 445 | var long = 0; 446 | for (var i = 0; i < str.length; i++) { 447 | long += (str.charCodeAt(i) << (i % 16)) + (i * step) 448 | } 449 | return long 450 | } 451 | 452 | function strToLongEn3(str, step) { 453 | var long = 0; 454 | for (var i = 0; i < str.length; i++) { 455 | long += (str.charCodeAt(i) << (i % 16)) + (i + step - str.charCodeAt(i)) 456 | } 457 | return long 458 | } 459 | 460 | function makeKey_0(str) { 461 | var str = str.substr(5, 5 * 5) + str.substr((5 + 1) * (5 + 1), 3); 462 | var a = str.substr(5) + str.substr(-4); 463 | var b = str.substr(4) + a.substr(-6); 464 | return hex_md5(str).substr(4, 24) 465 | } 466 | 467 | function makeKey_1(str) { 468 | var str = str.substr(5, 5 * 5) + "5" + str.substr(1, 2) + "1" + str.substr((5 + 1) * (5 + 1), 3); 469 | var a = str.substr(5) + str.substr(4); 470 | var b = str.substr(12) + a.substr(-6); 471 | var c = str.substr(4) + a.substr(6); 472 | return hex_md5(c).substr(4, 24) 473 | } 474 | 475 | function makeKey_2(str) { 476 | var str = str.substr(5, 5 * 5) + "15" + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3); 477 | var a = strToLong(str.substr(5)) + str.substr(4); 478 | var b = strToLong(str.substr(5)) + str.substr(4); 479 | var c = str.substr(4) + b.substr(5); 480 | return hex_md5(c).substr(1, 24) 481 | } 482 | 483 | function makeKey_3(str) { 484 | var str = str.substr(5, 5 * 5) + "15" + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3); 485 | var a = strToLongEn(str.substr(5)) + str.substr(4); 486 | var b = str.substr(4) + a.substr(5); 487 | var c = strToLong(str.substr(5)) + str.substr(4); 488 | return hex_md5(b).substr(3, 24) 489 | } 490 | 491 | function makeKey_4(str) { 492 | var str = str.substr(5, 5 * 5) + "2" + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3); 493 | var long = 0; 494 | for (var i = 0; i < str.substr(1).length; i++) { 495 | long += (str.charCodeAt(i) << (i % 16)) 496 | } 497 | var aa = long + str.substr(4); 498 | var long = 0; 499 | var a = str.substr(5); 500 | for (var i = 0; i < a.length; i++) { 501 | long += (a.charCodeAt(i) << (i % 16)) + i 502 | } 503 | a = long + "" + str.substr(4); 504 | var b = hex_md5(str.substr(1)) + strToLong(a.substr(5)); 505 | return hex_md5(b).substr(3, 24) 506 | } 507 | 508 | function makeKey_5(str) { 509 | var base = new Base64(); 510 | var str = base.encode(str.substr(5, 5 * 5) + str.substr(1, 2) + "1") + str.substr((5 + 1) * (5 + 1), 3); 511 | var a = strToLongEn(str.substr(4, 10)) + str.substr(-4); 512 | var b = hex_md5(str.substr(4)) + a.substr(2); 513 | var a = str.substr(3); 514 | var c = strToLong(str.substr(5)) + str.substr(4); 515 | var aa = long + str.substr(4); 516 | var long = 0; 517 | for (var i = 0; i < a.length; i++) { 518 | long += (a.charCodeAt(i) << (i % 12)) + i 519 | } 520 | a = long + "" + str.substr(4); 521 | return hex_md5(str).substr(4, 24) 522 | } 523 | 524 | function makeKey_6(str) { 525 | var base = new Base64(); 526 | var str = str.substr(5, 5 * 5) + str.substr((5 + 1) * (5 + 1), 3); 527 | var a = base.encode(str.substr(4, 10)) + str.substr(2); 528 | var b = str.substr(6) + a.substr(2); 529 | var c = strToLong(str.substr(5)) + str.substr(4); 530 | var aa = long + str.substr(4); 531 | var long = 0; 532 | var a = str.substr(5); 533 | for (var i = 0; i < a.length; i++) { 534 | long += (a.charCodeAt(i) << (i % 16)) + i 535 | } 536 | a = long + "" + str.substr(4); 537 | return hex_md5(b).substr(2, 24) 538 | } 539 | 540 | function makeKey_7(str) { 541 | var base = new Base64(); 542 | var str = base.encode(str.substr(5, 5 * 4) + "55" + str.substr(1, 2)) + str.substr((5 + 1) * (5 + 1), 3); 543 | var long = 0; 544 | for (var i = 0; i < str.substr(1).length; i++) { 545 | long += (str.charCodeAt(i) << (i % 16 + 5)) + 3 + 5 546 | } 547 | var aa = long + str.substr(4); 548 | var long = 0; 549 | var a = str.substr(5); 550 | for (var i = 0; i < a.length; i++) { 551 | long += (a.charCodeAt(i) << (i % 16)) 552 | } 553 | a = long + "" + str.substr(4); 554 | var b = hex_md5(str.substr(1)) + strToLong(a.substr(5)); 555 | return hex_md5(b).substr(3, 24) 556 | } 557 | 558 | function makeKey_8(str) { 559 | var base = new Base64(); 560 | var str = base.encode(str.substr(5, 5 * 5 - 1) + "5" + "-" + "5") + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3); 561 | var long = 0; 562 | for (var i = 0; i < str.substr(1).length; i++) { 563 | long += (str.charCodeAt(i) << (i % 16)) 564 | } 565 | var aa = long + str.substr(4); 566 | var long = 0; 567 | var a = str.substr(5); 568 | for (var i = 0; i < a.length; i++) { 569 | long += (a.charCodeAt(i) << (i % 16)) 570 | } 571 | a = long + "" + str.substr(4); 572 | var b = hex_md5(str.substr(1)) + strToLongEn(a.substr(5)); 573 | return hex_md5(b).substr(4, 24) 574 | } 575 | 576 | function makeKey_9(str) { 577 | var str = str.substr(5, 5 * 5) + "5" + str.substr(1, 2) + "1" + str.substr((5 + 1) * (5 + 1), 3); 578 | var a = str.substr(5) + str.substr(4); 579 | var b = str.substr(12) + a.substr(-6); 580 | var c = hex_sha1(str.substr(4)) + a.substr(6); 581 | return hex_md5(c).substr(4, 24) 582 | } 583 | 584 | function makeKey_10(str) { 585 | var base = new Base64(); 586 | var str = base.encode(str.substr(5, 5 * 5 - 1) + "5") + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3); 587 | var long = 0; 588 | for (var i = 0; i < str.substr(1).length; i++) { 589 | long += (str.charCodeAt(i) << (i % 16)) 590 | } 591 | var aa = long + str.substr(4); 592 | var long = 0; 593 | var a = str.substr(5); 594 | for (var i = 0; i < a.length; i++) { 595 | long += (a.charCodeAt(i) << (i % 16)) 596 | } 597 | a = long + "" + str.substr(4); 598 | var b = hex_md5(str.substr(1)) + hex_sha1(a.substr(5)); 599 | return hex_md5(b).substr(4, 24) 600 | } 601 | 602 | function makeKey_11(str) { 603 | var base = new Base64(); 604 | var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3); 605 | var long = 0; 606 | for (var i = 0; i < str.substr(1).length; i++) { 607 | long += (str.charCodeAt(i) << (i % 16)) 608 | } 609 | var aa = long + str.substr(4); 610 | var long = 0; 611 | var a = str.substr(5); 612 | for (var i = 0; i < a.length; i++) { 613 | long += (a.charCodeAt(i) << (i % 16)) 614 | } 615 | a = long + "" + str.substr(2); 616 | var b = str.substr(1) + hex_sha1(a.substr(5)); 617 | return hex_md5(b).substr(2, 24) 618 | } 619 | 620 | function makeKey_12(str) { 621 | var base = new Base64(); 622 | var str = str.substr(5, 5 * 5 - 1) + str.substr((5 + 1) * (5 + 1), 3) + "2" + str.substr(1, 2); 623 | var long = 0; 624 | for (var i = 0; i < str.substr(1).length; i++) { 625 | long += (str.charCodeAt(i) << (i % 16)) 626 | } 627 | var aa = long + str.substr(4); 628 | var long = 0; 629 | var a = str.substr(5); 630 | for (var i = 0; i < a.length; i++) { 631 | long += (a.charCodeAt(i) << (i % 16)) 632 | } 633 | a = long + "" + str.substr(2); 634 | var b = str.substr(1) + hex_sha1(str.substr(5)); 635 | return hex_md5(b).substr(1, 24) 636 | } 637 | 638 | function makeKey_13(str) { 639 | var base = new Base64(); 640 | var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2); 641 | var long = 0; 642 | for (var i = 0; i < str.substr(1).length; i++) { 643 | long += (str.charCodeAt(i) << (i % 16)) 644 | } 645 | var aa = long + str.substr(4); 646 | var long = 0; 647 | var a = str.substr(5); 648 | for (var i = 0; i < a.length; i++) { 649 | long += (a.charCodeAt(i) << (i % 16)) 650 | } 651 | a = long + "" + str.substr(2); 652 | var b = base.encode(str.substr(1) + hex_sha1(str.substr(5))); 653 | return hex_md5(b).substr(1, 24) 654 | } 655 | 656 | function makeKey_14(str) { 657 | var base = new Base64(); 658 | var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2); 659 | var long = 0; 660 | for (var i = 0; i < str.substr(1).length; i++) { 661 | long += (str.charCodeAt(i) << (i % 16)) 662 | } 663 | var aa = long + str.substr(4); 664 | var long = 0; 665 | var a = str.substr(5); 666 | for (var i = 0; i < a.length; i++) { 667 | long += (a.charCodeAt(i) << (i % 16)) 668 | } 669 | a = long + "" + str.substr(2); 670 | var b = base.encode(str.substr(1) + str.substr(5) + str.substr(1, 3)); 671 | return hex_sha1(b).substr(1, 24) 672 | } 673 | 674 | function makeKey_15(str) { 675 | var base = new Base64(); 676 | var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2); 677 | var long = 0; 678 | for (var i = 0; i < str.substr(1).length; i++) { 679 | long += (str.charCodeAt(i) << (i % 16)) 680 | } 681 | var aa = long + str.substr(4); 682 | var long = 0; 683 | var a = str.substr(5); 684 | for (var i = 0; i < a.length; i++) { 685 | long += (a.charCodeAt(i) << (i % 16)) 686 | } 687 | a = long + "" + str.substr(2); 688 | var b = base.encode(a.substr(1) + str.substr(5) + str.substr(2, 3)); 689 | return hex_sha1(b).substr(1, 24) 690 | } 691 | 692 | function makeKey_16(str) { 693 | var base = new Base64(); 694 | var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2) + "-" + "5"; 695 | var long = 0; 696 | for (var i = 0; i < str.substr(1).length; i++) { 697 | long += (str.charCodeAt(i) << (i % 11)) 698 | } 699 | var aa = long + str.substr(4); 700 | var long = 0; 701 | var a = str.substr(5); 702 | for (var i = 0; i < a.length; i++) { 703 | long += (a.charCodeAt(i) << (i % 16)) + i 704 | } 705 | a = long + "" + str.substr(2); 706 | var b = base.encode(a.substr(1)) + strToLongEn2(str.substr(5), 5) + str.substr(2, 3); 707 | return hex_md5(b).substr(2, 24) 708 | } 709 | 710 | function makeKey_17(str) { 711 | var base = new Base64(); 712 | var str = str.substr(5, 5 * 5 - 1) + "7" + str.substr(1, 2) + "-" + "5"; 713 | var long = 0; 714 | for (var i = 0; i < str.substr(1).length; i++) { 715 | long += (str.charCodeAt(i) << (i % 11)) 716 | } 717 | var aa = long + str.substr(4); 718 | var long = 0; 719 | var a = str.substr(5); 720 | for (var i = 0; i < a.length; i++) { 721 | long += (a.charCodeAt(i) << (i % 16)) + i 722 | } 723 | a = long + "" + str.substr(2); 724 | var b = base.encode(a.substr(1)) + strToLongEn2(str.substr(5), 5 + 1) + str.substr(2 + 5, 3); 725 | return hex_md5(b).substr(0, 24) 726 | } 727 | 728 | function makeKey_18(str) { 729 | var base = new Base64(); 730 | var str = str.substr(5, 5 * 5 - 1) + "7" + str.substr(1, 2) + "5" + str.substr(2 + 5, 3); 731 | var long = 0; 732 | for (var i = 0; i < str.substr(1).length; i++) { 733 | long += (str.charCodeAt(i) << (i % 11)) 734 | } 735 | var aa = long + str.substr(4); 736 | var long = 0; 737 | var a = str.substr(5); 738 | for (var i = 0; i < a.length; i++) { 739 | long += (a.charCodeAt(i) << (i % 16)) + i 740 | } 741 | a = long + "" + str.substr(2); 742 | var b = a.substr(1) + strToLongEn2(str.substr(5), 5 + 1) + str.substr(2 + 5, 3); 743 | return hex_md5(b).substr(0, 24) 744 | } 745 | 746 | function makeKey_19(str) { 747 | var base = new Base64(); 748 | var str = str.substr(5, 5 * 5 - 1) + "7" + str.substr(5, 2) + "5" + str.substr(2 + 5, 3); 749 | var long = 0; 750 | for (var i = 0; i < str.substr(1).length; i++) { 751 | long += (str.charCodeAt(i) << (i % 11)) 752 | } 753 | var aa = long + str.substr(4); 754 | var long = 0; 755 | var a = str.substr(5); 756 | for (var i = 0; i < a.length; i++) { 757 | long += (a.charCodeAt(i) << (i % 16)) + i 758 | } 759 | a = long + "" + str.substr(2); 760 | var b = a.substr(1) + strToLongEn3(str.substr(5), 5 - 1) + str.substr(2 + 5, 3); 761 | return hex_md5(b).substr(0, 24) 762 | } 763 | 764 | function makeKey_20(str) { 765 | return hex_md5(makeKey_10(str) + makeKey_5(str)).substr(1, 24) 766 | } 767 | 768 | function makeKey_21(str) { 769 | return hex_md5(makeKey_11(str) + makeKey_3(str)).substr(2, 24) 770 | } 771 | 772 | function makeKey_22(str) { 773 | return hex_md5(makeKey_14(str) + makeKey_19(str)).substr(3, 24) 774 | } 775 | 776 | function makeKey_23(str) { 777 | return hex_md5(makeKey_15(str) + makeKey_0(str)).substr(4, 24) 778 | } 779 | 780 | function makeKey_24(str) { 781 | return hex_md5(makeKey_16(str) + makeKey_1(str)).substr(1, 24) 782 | } 783 | 784 | function makeKey_25(str) { 785 | return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(2, 24) 786 | } 787 | 788 | function makeKey_26(str) { 789 | return hex_md5(makeKey_10(str) + makeKey_5(str)).substr(3, 24) 790 | } 791 | 792 | function makeKey_27(str) { 793 | return hex_md5(makeKey_17(str) + makeKey_3(str)).substr(4, 24) 794 | } 795 | 796 | function makeKey_28(str) { 797 | return hex_md5(makeKey_18(str) + makeKey_7(str)).substr(1, 24) 798 | } 799 | 800 | function makeKey_29(str) { 801 | return hex_md5(makeKey_19(str) + makeKey_3(str)).substr(2, 24) 802 | } 803 | 804 | function makeKey_30(str) { 805 | return hex_md5(makeKey_0(str) + makeKey_7(str)).substr(3, 24) 806 | } 807 | 808 | function makeKey_31(str) { 809 | return hex_md5(makeKey_1(str) + makeKey_8(str)).substr(4, 24) 810 | } 811 | 812 | function makeKey_32(str) { 813 | return hex_md5(makeKey_4(str) + makeKey_14(str)).substr(3, 24) 814 | } 815 | 816 | function makeKey_33(str) { 817 | return hex_md5(makeKey_5(str) + makeKey_15(str)).substr(4, 24) 818 | } 819 | 820 | function makeKey_34(str) { 821 | return hex_md5(makeKey_3(str) + makeKey_16(str)).substr(1, 24) 822 | } 823 | 824 | function makeKey_35(str) { 825 | return hex_md5(makeKey_7(str) + makeKey_9(str)).substr(2, 24) 826 | } 827 | 828 | function makeKey_36(str) { 829 | return hex_md5(makeKey_8(str) + makeKey_10(str)).substr(3, 24) 830 | } 831 | 832 | function makeKey_37(str) { 833 | return hex_md5(makeKey_6(str) + makeKey_17(str)).substr(1, 24) 834 | } 835 | 836 | function makeKey_38(str) { 837 | return hex_md5(makeKey_12(str) + makeKey_18(str)).substr(2, 24) 838 | } 839 | 840 | function makeKey_39(str) { 841 | return hex_md5(makeKey_14(str) + makeKey_19(str)).substr(3, 24) 842 | } 843 | 844 | function makeKey_40(str) { 845 | return hex_md5(makeKey_15(str) + makeKey_0(str)).substr(4, 24) 846 | } 847 | 848 | function makeKey_41(str) { 849 | return hex_md5(makeKey_16(str) + makeKey_1(str)).substr(3, 24) 850 | } 851 | 852 | function makeKey_42(str) { 853 | return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(4, 24) 854 | } 855 | 856 | function makeKey_43(str) { 857 | return hex_md5(makeKey_10(str) + makeKey_5(str)).substr(1, 24) 858 | } 859 | 860 | function makeKey_44(str) { 861 | return hex_md5(makeKey_17(str) + makeKey_3(str)).substr(2, 24) 862 | } 863 | 864 | function makeKey_45(str) { 865 | return hex_md5(makeKey_18(str) + makeKey_7(str)).substr(3, 24) 866 | } 867 | 868 | function makeKey_46(str) { 869 | return hex_md5(makeKey_19(str) + makeKey_17(str)).substr(4, 24) 870 | } 871 | 872 | function makeKey_47(str) { 873 | return hex_md5(makeKey_0(str) + makeKey_18(str)).substr(1, 24) 874 | } 875 | 876 | function makeKey_48(str) { 877 | return hex_md5(makeKey_1(str) + makeKey_19(str)).substr(2, 24) 878 | } 879 | 880 | function makeKey_49(str) { 881 | return hex_md5(makeKey_4(str) + makeKey_0(str)).substr(3, 24) 882 | } 883 | 884 | function makeKey_50(str) { 885 | return hex_md5(makeKey_5(str) + makeKey_1(str)).substr(4, 24) 886 | } 887 | 888 | function makeKey_51(str) { 889 | return hex_md5(makeKey_3(str) + makeKey_4(str)).substr(1, 24) 890 | } 891 | 892 | function makeKey_52(str) { 893 | return hex_md5(makeKey_7(str) + makeKey_14(str)).substr(2, 24) 894 | } 895 | 896 | function makeKey_53(str) { 897 | return hex_md5(makeKey_12(str) + makeKey_15(str)).substr(3, 24) 898 | } 899 | 900 | function makeKey_54(str) { 901 | return hex_md5(makeKey_14(str) + makeKey_16(str)).substr(4, 24) 902 | } 903 | 904 | function makeKey_55(str) { 905 | return hex_md5(makeKey_15(str) + makeKey_9(str)).substr(3, 24) 906 | } 907 | 908 | function makeKey_56(str) { 909 | return hex_md5(makeKey_16(str) + makeKey_10(str)).substr(4, 24) 910 | } 911 | 912 | function makeKey_57(str) { 913 | return hex_md5(makeKey_9(str) + makeKey_17(str)).substr(1, 24) 914 | } 915 | 916 | function makeKey_58(str) { 917 | return hex_md5(makeKey_10(str) + makeKey_18(str)).substr(2, 24) 918 | } 919 | 920 | function makeKey_59(str) { 921 | return hex_md5(makeKey_17(str) + makeKey_19(str)).substr(3, 24) 922 | } 923 | 924 | function makeKey_60(str) { 925 | return hex_md5(makeKey_18(str) + makeKey_0(str)).substr(1, 24) 926 | } 927 | 928 | function makeKey_61(str) { 929 | return hex_md5(makeKey_19(str) + makeKey_1(str)).substr(2, 24) 930 | } 931 | 932 | function makeKey_62(str) { 933 | return hex_md5(makeKey_0(str) + makeKey_4(str)).substr(3, 24) 934 | } 935 | 936 | function makeKey_63(str) { 937 | return hex_md5(makeKey_1(str) + makeKey_19(str)).substr(4, 24) 938 | } 939 | 940 | function makeKey_64(str) { 941 | return hex_md5(makeKey_4(str) + makeKey_0(str)).substr(3, 24) 942 | } 943 | 944 | function makeKey_65(str) { 945 | return hex_md5(makeKey_14(str) + makeKey_1(str)).substr(1, 24) 946 | } 947 | 948 | function makeKey_66(str) { 949 | return hex_md5(makeKey_15(str) + makeKey_4(str)).substr(2, 24) 950 | } 951 | 952 | function makeKey_67(str) { 953 | return hex_md5(makeKey_16(str) + makeKey_5(str)).substr(3, 24) 954 | } 955 | 956 | function makeKey_68(str) { 957 | return hex_md5(makeKey_9(str) + makeKey_3(str)).substr(4, 24) 958 | } 959 | 960 | function makeKey_69(str) { 961 | return hex_md5(makeKey_10(str) + makeKey_7(str)).substr(1, 24) 962 | } 963 | 964 | function makeKey_70(str) { 965 | return hex_md5(makeKey_17(str) + makeKey_0(str)).substr(2, 24) 966 | } 967 | 968 | function makeKey_71(str) { 969 | return hex_md5(makeKey_18(str) + makeKey_1(str)).substr(3, 24) 970 | } 971 | 972 | function makeKey_72(str) { 973 | return hex_md5(makeKey_19(str) + makeKey_4(str)).substr(4, 24) 974 | } 975 | 976 | function makeKey_73(str) { 977 | return hex_md5(makeKey_0(str) + makeKey_17(str)).substr(1, 24) 978 | } 979 | 980 | function makeKey_74(str) { 981 | return hex_md5(makeKey_1(str) + makeKey_18(str)).substr(2, 24) 982 | } 983 | 984 | function makeKey_75(str) { 985 | return hex_md5(makeKey_14(str) + makeKey_19(str)).substr(3, 24) 986 | } 987 | 988 | function makeKey_76(str) { 989 | return hex_md5(makeKey_15(str) + makeKey_0(str)).substr(4, 24) 990 | } 991 | 992 | function makeKey_77(str) { 993 | return hex_md5(makeKey_16(str) + makeKey_1(str)).substr(3, 24) 994 | } 995 | 996 | function makeKey_78(str) { 997 | return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(4, 24) 998 | } 999 | 1000 | function makeKey_79(str) { 1001 | return hex_md5(makeKey_10(str) + makeKey_9(str)).substr(1, 24) 1002 | } 1003 | 1004 | function makeKey_80(str) { 1005 | return hex_md5(makeKey_17(str) + makeKey_10(str)).substr(2, 24) 1006 | } 1007 | 1008 | function makeKey_81(str) { 1009 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(3, 24) 1010 | } 1011 | 1012 | function makeKey_82(str) { 1013 | return hex_md5(makeKey_14(str) + makeKey_18(str)).substr(1, 24) 1014 | } 1015 | 1016 | function makeKey_83(str) { 1017 | return hex_md5(makeKey_15(str) + makeKey_19(str)).substr(4, 24) 1018 | } 1019 | 1020 | function makeKey_84(str) { 1021 | return hex_md5(makeKey_16(str) + makeKey_0(str)).substr(1, 24) 1022 | } 1023 | 1024 | function makeKey_85(str) { 1025 | return hex_md5(makeKey_9(str) + makeKey_1(str)).substr(2, 24) 1026 | } 1027 | 1028 | function makeKey_86(str) { 1029 | return hex_md5(makeKey_10(str) + makeKey_4(str)).substr(3, 24) 1030 | } 1031 | 1032 | function makeKey_87(str) { 1033 | return hex_md5(makeKey_14(str) + makeKey_14(str)).substr(4, 24) 1034 | } 1035 | 1036 | function makeKey_88(str) { 1037 | return hex_md5(makeKey_15(str) + makeKey_15(str)).substr(1, 24) 1038 | } 1039 | 1040 | function makeKey_89(str) { 1041 | return hex_md5(makeKey_16(str) + makeKey_16(str)).substr(2, 24) 1042 | } 1043 | 1044 | function makeKey_90(str) { 1045 | return hex_md5(makeKey_9(str) + makeKey_9(str)).substr(3, 24) 1046 | } 1047 | 1048 | function makeKey_91(str) { 1049 | return hex_md5(makeKey_10(str) + makeKey_10(str)).substr(4, 24) 1050 | } 1051 | 1052 | function makeKey_92(str) { 1053 | return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(3, 24) 1054 | } 1055 | 1056 | function makeKey_93(str) { 1057 | return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(4, 24) 1058 | } 1059 | 1060 | function makeKey_94(str) { 1061 | return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(1, 24) 1062 | } 1063 | 1064 | function makeKey_95(str) { 1065 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(2, 24) 1066 | } 1067 | 1068 | function makeKey_96(str) { 1069 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(3, 24) 1070 | } 1071 | 1072 | function makeKey_97(str) { 1073 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(4, 24) 1074 | } 1075 | 1076 | function makeKey_98(str) { 1077 | return hex_md5(makeKey_5(str) + makeKey_5(str)).substr(3, 24) 1078 | } 1079 | 1080 | function makeKey_99(str) { 1081 | return hex_md5(makeKey_3(str) + makeKey_3(str)).substr(4, 24) 1082 | } 1083 | 1084 | function makeKey_100(str) { 1085 | return hex_md5(makeKey_7(str) + makeKey_3(str)).substr(1, 24) 1086 | } 1087 | 1088 | function makeKey_101(str) { 1089 | return hex_md5(makeKey_10(str) + makeKey_7(str)).substr(2, 24) 1090 | } 1091 | 1092 | function makeKey_102(str) { 1093 | return hex_md5(makeKey_17(str) + makeKey_18(str)).substr(1, 24) 1094 | } 1095 | 1096 | function makeKey_103(str) { 1097 | return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(2, 24) 1098 | } 1099 | 1100 | function makeKey_104(str) { 1101 | return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(3, 24) 1102 | } 1103 | 1104 | function makeKey_105(str) { 1105 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(4, 24) 1106 | } 1107 | 1108 | function makeKey_106(str) { 1109 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(1, 24) 1110 | } 1111 | 1112 | function makeKey_107(str) { 1113 | return hex_md5(makeKey_14(str) + makeKey_14(str)).substr(2, 24) 1114 | } 1115 | 1116 | function makeKey_108(str) { 1117 | return hex_md5(makeKey_15(str) + makeKey_15(str)).substr(3, 24) 1118 | } 1119 | 1120 | function makeKey_109(str) { 1121 | return hex_md5(makeKey_16(str) + makeKey_16(str)).substr(4, 24) 1122 | } 1123 | 1124 | function makeKey_110(str) { 1125 | return hex_md5(makeKey_9(str) + makeKey_9(str)).substr(1, 24) 1126 | } 1127 | 1128 | function makeKey_111(str) { 1129 | return hex_md5(makeKey_10(str) + makeKey_10(str)).substr(2, 24) 1130 | } 1131 | 1132 | function makeKey_112(str) { 1133 | return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(3, 24) 1134 | } 1135 | 1136 | function makeKey_113(str) { 1137 | return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(4, 24) 1138 | } 1139 | 1140 | function makeKey_114(str) { 1141 | return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(3, 24) 1142 | } 1143 | 1144 | function makeKey_115(str) { 1145 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(4, 24) 1146 | } 1147 | 1148 | function makeKey_116(str) { 1149 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(1, 24) 1150 | } 1151 | 1152 | function makeKey_117(str) { 1153 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(2, 24) 1154 | } 1155 | 1156 | function makeKey_118(str) { 1157 | return hex_md5(makeKey_5(str) + makeKey_15(str)).substr(3, 24) 1158 | } 1159 | 1160 | function makeKey_119(str) { 1161 | return hex_md5(makeKey_3(str) + makeKey_16(str)).substr(1, 24) 1162 | } 1163 | 1164 | function makeKey_120(str) { 1165 | return hex_md5(makeKey_19(str) + makeKey_9(str)).substr(1, 24) 1166 | } 1167 | 1168 | function makeKey_121(str) { 1169 | return hex_md5(makeKey_0(str) + makeKey_10(str)).substr(2, 24) 1170 | } 1171 | 1172 | function makeKey_122(str) { 1173 | return hex_md5(makeKey_1(str) + makeKey_17(str)).substr(3, 24) 1174 | } 1175 | 1176 | function makeKey_123(str) { 1177 | return hex_md5(makeKey_4(str) + makeKey_18(str)).substr(4, 24) 1178 | } 1179 | 1180 | function makeKey_124(str) { 1181 | return hex_md5(makeKey_5(str) + makeKey_19(str)).substr(1, 24) 1182 | } 1183 | 1184 | function makeKey_125(str) { 1185 | return hex_md5(makeKey_3(str) + makeKey_0(str)).substr(2, 24) 1186 | } 1187 | 1188 | function makeKey_126(str) { 1189 | return hex_md5(makeKey_7(str) + makeKey_1(str)).substr(3, 24) 1190 | } 1191 | 1192 | function makeKey_127(str) { 1193 | return hex_md5(makeKey_3(str) + makeKey_4(str)).substr(4, 24) 1194 | } 1195 | 1196 | function makeKey_128(str) { 1197 | return hex_md5(makeKey_7(str) + makeKey_5(str)).substr(1, 24) 1198 | } 1199 | 1200 | function makeKey_129(str) { 1201 | return hex_md5(makeKey_8(str) + makeKey_3(str)).substr(2, 24) 1202 | } 1203 | 1204 | function makeKey_130(str) { 1205 | return hex_md5(makeKey_14(str) + makeKey_7(str)).substr(3, 24) 1206 | } 1207 | 1208 | function makeKey_131(str) { 1209 | return hex_md5(makeKey_15(str) + makeKey_10(str)).substr(4, 24) 1210 | } 1211 | 1212 | function makeKey_132(str) { 1213 | return hex_md5(makeKey_16(str) + makeKey_17(str)).substr(3, 24) 1214 | } 1215 | 1216 | function makeKey_133(str) { 1217 | return hex_md5(makeKey_9(str) + makeKey_18(str)).substr(4, 24) 1218 | } 1219 | 1220 | function makeKey_134(str) { 1221 | return hex_md5(makeKey_10(str) + makeKey_19(str)).substr(1, 24) 1222 | } 1223 | 1224 | function makeKey_135(str) { 1225 | return hex_md5(makeKey_17(str) + makeKey_0(str)).substr(2, 24) 1226 | } 1227 | 1228 | function makeKey_136(str) { 1229 | return hex_md5(makeKey_18(str) + makeKey_1(str)).substr(1, 24) 1230 | } 1231 | 1232 | function makeKey_137(str) { 1233 | return hex_md5(makeKey_19(str) + makeKey_14(str)).substr(2, 24) 1234 | } 1235 | 1236 | function makeKey_138(str) { 1237 | return hex_md5(makeKey_0(str) + makeKey_15(str)).substr(3, 24) 1238 | } 1239 | 1240 | function makeKey_139(str) { 1241 | return hex_md5(makeKey_1(str) + makeKey_16(str)).substr(4, 24) 1242 | } 1243 | 1244 | function makeKey_140(str) { 1245 | return hex_md5(makeKey_4(str) + makeKey_9(str)).substr(1, 24) 1246 | } 1247 | 1248 | function makeKey_141(str) { 1249 | return hex_md5(makeKey_5(str) + makeKey_10(str)).substr(2, 24) 1250 | } 1251 | 1252 | function makeKey_142(str) { 1253 | return hex_md5(makeKey_3(str) + makeKey_17(str)).substr(3, 24) 1254 | } 1255 | 1256 | function makeKey_143(str) { 1257 | return hex_md5(makeKey_7(str) + makeKey_18(str)).substr(4, 24) 1258 | } 1259 | 1260 | function makeKey_144(str) { 1261 | return hex_md5(makeKey_17(str) + makeKey_19(str)).substr(1, 24) 1262 | } 1263 | 1264 | function makeKey_145(str) { 1265 | return hex_md5(makeKey_18(str) + makeKey_0(str)).substr(2, 24) 1266 | } 1267 | 1268 | function makeKey_146(str) { 1269 | return hex_md5(makeKey_19(str) + makeKey_1(str)).substr(3, 24) 1270 | } 1271 | 1272 | function makeKey_147(str) { 1273 | return hex_md5(makeKey_0(str) + makeKey_4(str)).substr(4, 24) 1274 | } 1275 | 1276 | function makeKey_148(str) { 1277 | return hex_md5(makeKey_1(str) + makeKey_5(str)).substr(3, 24) 1278 | } 1279 | 1280 | function makeKey_149(str) { 1281 | return hex_md5(makeKey_4(str) + makeKey_3(str)).substr(4, 24) 1282 | } 1283 | 1284 | function makeKey_150(str) { 1285 | return hex_md5(makeKey_14(str) + makeKey_19(str)).substr(1, 24) 1286 | } 1287 | 1288 | function makeKey_151(str) { 1289 | return hex_md5(makeKey_15(str) + makeKey_0(str)).substr(2, 24) 1290 | } 1291 | 1292 | function makeKey_152(str) { 1293 | return hex_md5(makeKey_16(str) + makeKey_1(str)).substr(3, 24) 1294 | } 1295 | 1296 | function makeKey_153(str) { 1297 | return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(1, 24) 1298 | } 1299 | 1300 | function makeKey_154(str) { 1301 | return hex_md5(makeKey_10(str) + makeKey_5(str)).substr(1, 24) 1302 | } 1303 | 1304 | function makeKey_155(str) { 1305 | return hex_md5(makeKey_17(str) + makeKey_3(str)).substr(2, 24) 1306 | } 1307 | 1308 | function makeKey_156(str) { 1309 | return hex_md5(makeKey_18(str) + makeKey_7(str)).substr(3, 24) 1310 | } 1311 | 1312 | function makeKey_157(str) { 1313 | return hex_md5(makeKey_19(str) + makeKey_3(str)).substr(4, 24) 1314 | } 1315 | 1316 | function makeKey_158(str) { 1317 | return hex_md5(makeKey_0(str) + makeKey_7(str)).substr(1, 24) 1318 | } 1319 | 1320 | function makeKey_159(str) { 1321 | return hex_md5(makeKey_1(str) + makeKey_8(str)).substr(2, 24) 1322 | } 1323 | 1324 | function makeKey_160(str) { 1325 | return hex_md5(makeKey_4(str) + makeKey_14(str)).substr(3, 24) 1326 | } 1327 | 1328 | function makeKey_161(str) { 1329 | return hex_md5(makeKey_19(str) + makeKey_15(str)).substr(4, 24) 1330 | } 1331 | 1332 | function makeKey_162(str) { 1333 | return hex_md5(makeKey_0(str) + makeKey_16(str)).substr(1, 24) 1334 | } 1335 | 1336 | function makeKey_163(str) { 1337 | return hex_md5(makeKey_1(str) + makeKey_9(str)).substr(2, 24) 1338 | } 1339 | 1340 | function makeKey_164(str) { 1341 | return hex_md5(makeKey_4(str) + makeKey_10(str)).substr(3, 24) 1342 | } 1343 | 1344 | function makeKey_165(str) { 1345 | return hex_md5(makeKey_5(str) + makeKey_17(str)).substr(4, 24) 1346 | } 1347 | 1348 | function makeKey_166(str) { 1349 | return hex_md5(makeKey_3(str) + makeKey_18(str)).substr(3, 24) 1350 | } 1351 | 1352 | function makeKey_167(str) { 1353 | return hex_md5(makeKey_7(str) + makeKey_19(str)).substr(4, 24) 1354 | } 1355 | 1356 | function makeKey_168(str) { 1357 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(1, 24) 1358 | } 1359 | 1360 | function makeKey_169(str) { 1361 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(2, 24) 1362 | } 1363 | 1364 | function makeKey_170(str) { 1365 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(3, 24) 1366 | } 1367 | 1368 | function makeKey_171(str) { 1369 | return hex_md5(makeKey_17(str) + makeKey_5(str)).substr(1, 24) 1370 | } 1371 | 1372 | function makeKey_172(str) { 1373 | return hex_md5(makeKey_18(str) + makeKey_3(str)).substr(2, 24) 1374 | } 1375 | 1376 | function makeKey_173(str) { 1377 | return hex_md5(makeKey_19(str) + makeKey_7(str)).substr(3, 24) 1378 | } 1379 | 1380 | function makeKey_174(str) { 1381 | return hex_md5(makeKey_0(str) + makeKey_17(str)).substr(4, 24) 1382 | } 1383 | 1384 | function makeKey_175(str) { 1385 | return hex_md5(makeKey_1(str) + makeKey_18(str)).substr(1, 24) 1386 | } 1387 | 1388 | function makeKey_176(str) { 1389 | return hex_md5(makeKey_4(str) + makeKey_19(str)).substr(2, 24) 1390 | } 1391 | 1392 | function makeKey_177(str) { 1393 | return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(3, 24) 1394 | } 1395 | 1396 | function makeKey_178(str) { 1397 | return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(4, 24) 1398 | } 1399 | 1400 | function makeKey_179(str) { 1401 | return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(1, 24) 1402 | } 1403 | 1404 | function makeKey_180(str) { 1405 | return hex_md5(makeKey_18(str) + makeKey_14(str)).substr(3, 24) 1406 | } 1407 | 1408 | function makeKey_181(str) { 1409 | return hex_md5(makeKey_19(str) + makeKey_15(str)).substr(1, 24) 1410 | } 1411 | 1412 | function makeKey_182(str) { 1413 | return hex_md5(makeKey_0(str) + makeKey_16(str)).substr(2, 24) 1414 | } 1415 | 1416 | function makeKey_183(str) { 1417 | return hex_md5(makeKey_1(str) + makeKey_9(str)).substr(3, 24) 1418 | } 1419 | 1420 | function makeKey_184(str) { 1421 | return hex_md5(makeKey_4(str) + makeKey_10(str)).substr(4, 24) 1422 | } 1423 | 1424 | function makeKey_185(str) { 1425 | return hex_md5(makeKey_14(str) + makeKey_17(str)).substr(3, 24) 1426 | } 1427 | 1428 | function makeKey_186(str) { 1429 | return hex_md5(makeKey_15(str) + makeKey_18(str)).substr(4, 24) 1430 | } 1431 | 1432 | function makeKey_187(str) { 1433 | return hex_md5(makeKey_16(str) + makeKey_19(str)).substr(4, 24) 1434 | } 1435 | 1436 | function makeKey_188(str) { 1437 | return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(1, 24) 1438 | } 1439 | 1440 | function makeKey_189(str) { 1441 | return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(2, 24) 1442 | } 1443 | 1444 | function makeKey_190(str) { 1445 | return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(3, 24) 1446 | } 1447 | 1448 | function makeKey_191(str) { 1449 | return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(4, 24) 1450 | } 1451 | 1452 | function makeKey_192(str) { 1453 | return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(1, 24) 1454 | } 1455 | 1456 | function makeKey_193(str) { 1457 | return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(2, 24) 1458 | } 1459 | 1460 | function makeKey_194(str) { 1461 | return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(3, 24) 1462 | } 1463 | 1464 | function makeKey_195(str) { 1465 | return hex_md5(makeKey_4(str) + makeKey_14(str)).substr(4, 24) 1466 | } 1467 | 1468 | function makeKey_196(str) { 1469 | return hex_md5(makeKey_5(str) + makeKey_15(str)).substr(3, 24) 1470 | } 1471 | 1472 | function makeKey_197(str) { 1473 | return hex_md5(makeKey_3(str) + makeKey_16(str)).substr(4, 24) 1474 | } 1475 | 1476 | function makeKey_198(str) { 1477 | return hex_md5(makeKey_3(str) + makeKey_9(str)).substr(1, 24) 1478 | } 1479 | 1480 | function makeKey_199(str) { 1481 | return hex_md5(makeKey_7(str) + makeKey_1(str)).substr(2, 24) 1482 | } 1483 | 1484 | function makeKey_200(str) { 1485 | return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(2, 24) 1486 | } 1487 | 1488 | function makeKey_201(str) { 1489 | return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(3, 24) 1490 | } 1491 | 1492 | function makeKey_202(str) { 1493 | return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(1, 24) 1494 | } 1495 | 1496 | function makeKey_203(str) { 1497 | return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(2, 24) 1498 | } 1499 | 1500 | function makeKey_204(str) { 1501 | return hex_md5(makeKey_4(str) + makeKey_5(str)).substr(3, 24) 1502 | } 1503 | 1504 | function makeKey_205(str) { 1505 | return hex_md5(makeKey_14(str) + makeKey_3(str)).substr(4, 24) 1506 | } 1507 | 1508 | function makeKey_206(str) { 1509 | return hex_md5(makeKey_15(str) + makeKey_7(str)).substr(1, 24) 1510 | } 1511 | 1512 | function makeKey_207(str) { 1513 | return hex_md5(makeKey_16(str) + makeKey_17(str)).substr(2, 24) 1514 | } 1515 | 1516 | function makeKey_208(str) { 1517 | return hex_md5(makeKey_9(str) + makeKey_18(str)).substr(3, 24) 1518 | } 1519 | 1520 | function makeKey_209(str) { 1521 | return hex_md5(makeKey_10(str) + makeKey_19(str)).substr(4, 24) 1522 | } 1523 | 1524 | function makeKey_210(str) { 1525 | return hex_md5(makeKey_17(str) + makeKey_0(str)).substr(1, 24) 1526 | } 1527 | 1528 | function makeKey_211(str) { 1529 | return hex_md5(makeKey_18(str) + makeKey_1(str)).substr(3, 24) 1530 | } 1531 | 1532 | function makeKey_212(str) { 1533 | return hex_md5(makeKey_19(str) + makeKey_4(str)).substr(1, 24) 1534 | } 1535 | 1536 | function makeKey_213(str) { 1537 | return hex_md5(makeKey_0(str) + makeKey_14(str)).substr(2, 24) 1538 | } 1539 | 1540 | function makeKey_214(str) { 1541 | return hex_md5(makeKey_1(str) + makeKey_15(str)).substr(3, 24) 1542 | } 1543 | 1544 | function makeKey_215(str) { 1545 | return hex_md5(makeKey_4(str) + makeKey_16(str)).substr(4, 24) 1546 | } 1547 | 1548 | function makeKey_216(str) { 1549 | return hex_md5(makeKey_19(str) + makeKey_9(str)).substr(3, 24) 1550 | } 1551 | 1552 | function makeKey_217(str) { 1553 | return hex_md5(makeKey_0(str) + makeKey_10(str)).substr(4, 24) 1554 | } 1555 | 1556 | function makeKey_218(str) { 1557 | return hex_md5(makeKey_1(str) + makeKey_17(str)).substr(4, 24) 1558 | } 1559 | 1560 | function makeKey_219(str) { 1561 | return hex_md5(makeKey_4(str) + makeKey_18(str)).substr(1, 24) 1562 | } 1563 | 1564 | function makeKey_220(str) { 1565 | return hex_md5(makeKey_5(str) + makeKey_19(str)).substr(2, 24) 1566 | } 1567 | 1568 | function makeKey_221(str) { 1569 | return hex_md5(makeKey_3(str) + makeKey_0(str)).substr(3, 24) 1570 | } 1571 | 1572 | function makeKey_222(str) { 1573 | return hex_md5(makeKey_7(str) + makeKey_1(str)).substr(4, 24) 1574 | } 1575 | 1576 | function makeKey_223(str) { 1577 | return hex_md5(makeKey_0(str) + makeKey_4(str)).substr(1, 24) 1578 | } 1579 | 1580 | function makeKey_224(str) { 1581 | return hex_md5(makeKey_1(str) + makeKey_5(str)).substr(2, 24) 1582 | } 1583 | 1584 | function makeKey_225(str) { 1585 | return hex_md5(makeKey_4(str) + makeKey_3(str)).substr(3, 24) 1586 | } 1587 | 1588 | function makeKey_226(str) { 1589 | return hex_md5(makeKey_17(str) + makeKey_7(str)).substr(4, 24) 1590 | } 1591 | 1592 | function makeKey_227(str) { 1593 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(2, 24) 1594 | } 1595 | 1596 | function makeKey_228(str) { 1597 | return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(3, 24) 1598 | } 1599 | 1600 | function makeKey_229(str) { 1601 | return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(1, 24) 1602 | } 1603 | 1604 | function makeKey_230(str) { 1605 | return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(2, 24) 1606 | } 1607 | 1608 | function makeKey_231(str) { 1609 | return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(3, 24) 1610 | } 1611 | 1612 | function makeKey_232(str) { 1613 | return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(4, 24) 1614 | } 1615 | 1616 | function makeKey_233(str) { 1617 | return hex_md5(makeKey_10(str) + makeKey_14(str)).substr(1, 24) 1618 | } 1619 | 1620 | function makeKey_234(str) { 1621 | return hex_md5(makeKey_17(str) + makeKey_15(str)).substr(2, 24) 1622 | } 1623 | 1624 | function makeKey_235(str) { 1625 | return hex_md5(makeKey_18(str) + makeKey_16(str)).substr(3, 24) 1626 | } 1627 | 1628 | function makeKey_236(str) { 1629 | return hex_md5(makeKey_19(str) + makeKey_9(str)).substr(4, 24) 1630 | } 1631 | 1632 | function makeKey_237(str) { 1633 | return hex_md5(makeKey_0(str) + makeKey_10(str)).substr(1, 24) 1634 | } 1635 | 1636 | function makeKey_238(str) { 1637 | return hex_md5(makeKey_1(str) + makeKey_17(str)).substr(3, 24) 1638 | } 1639 | 1640 | function makeKey_239(str) { 1641 | return hex_md5(makeKey_4(str) + makeKey_19(str)).substr(1, 24) 1642 | } 1643 | 1644 | function makeKey_240(str) { 1645 | return hex_md5(makeKey_14(str) + makeKey_0(str)).substr(2, 24) 1646 | } 1647 | 1648 | function makeKey_241(str) { 1649 | return hex_md5(makeKey_15(str) + makeKey_1(str)).substr(3, 24) 1650 | } 1651 | 1652 | function makeKey_242(str) { 1653 | return hex_md5(makeKey_16(str) + makeKey_4(str)).substr(4, 24) 1654 | } 1655 | 1656 | function makeKey_243(str) { 1657 | return hex_md5(makeKey_9(str) + makeKey_5(str)).substr(3, 24) 1658 | } 1659 | 1660 | function makeKey_244(str) { 1661 | return hex_md5(makeKey_10(str) + makeKey_3(str)).substr(4, 24) 1662 | } 1663 | 1664 | function makeKey_245(str) { 1665 | return hex_md5(makeKey_17(str) + makeKey_7(str)).substr(4, 24) 1666 | } 1667 | 1668 | function makeKey_246(str) { 1669 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(2, 24) 1670 | } 1671 | 1672 | function makeKey_247(str) { 1673 | return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(3, 24) 1674 | } 1675 | 1676 | function makeKey_248(str) { 1677 | return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(1, 24) 1678 | } 1679 | 1680 | function makeKey_249(str) { 1681 | return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(2, 24) 1682 | } 1683 | 1684 | function makeKey_250(str) { 1685 | return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(3, 24) 1686 | } 1687 | 1688 | function makeKey_251(str) { 1689 | return hex_md5(makeKey_19(str) + makeKey_4(str)).substr(4, 24) 1690 | } 1691 | 1692 | function makeKey_252(str) { 1693 | return hex_md5(makeKey_0(str) + makeKey_14(str)).substr(1, 24) 1694 | } 1695 | 1696 | function makeKey_253(str) { 1697 | return hex_md5(makeKey_1(str) + makeKey_15(str)).substr(2, 24) 1698 | } 1699 | 1700 | function makeKey_254(str) { 1701 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(3, 24) 1702 | } 1703 | 1704 | function makeKey_255(str) { 1705 | return hex_md5(makeKey_5(str) + makeKey_14(str)).substr(4, 24) 1706 | } 1707 | 1708 | function makeKey_256(str) { 1709 | return hex_md5(makeKey_3(str) + makeKey_15(str)).substr(1, 24) 1710 | } 1711 | 1712 | function makeKey_257(str) { 1713 | return hex_md5(makeKey_7(str) + makeKey_16(str)).substr(3, 24) 1714 | } 1715 | 1716 | function makeKey_258(str) { 1717 | return hex_md5(makeKey_0(str) + makeKey_9(str)).substr(1, 24) 1718 | } 1719 | 1720 | function makeKey_259(str) { 1721 | return hex_md5(makeKey_1(str) + makeKey_10(str)).substr(2, 24) 1722 | } 1723 | 1724 | function makeKey_260(str) { 1725 | return hex_md5(makeKey_4(str) + makeKey_17(str)).substr(3, 24) 1726 | } 1727 | 1728 | function makeKey_261(str) { 1729 | return hex_md5(makeKey_17(str) + makeKey_18(str)).substr(4, 24) 1730 | } 1731 | 1732 | function makeKey_262(str) { 1733 | return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(3, 24) 1734 | } 1735 | 1736 | function makeKey_263(str) { 1737 | return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(4, 24) 1738 | } 1739 | 1740 | function makeKey_264(str) { 1741 | return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(4, 24) 1742 | } 1743 | 1744 | function makeKey_265(str) { 1745 | return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(1, 24) 1746 | } 1747 | 1748 | function makeKey_266(str) { 1749 | return hex_md5(makeKey_4(str) + makeKey_19(str)).substr(2, 24) 1750 | } 1751 | 1752 | function makeKey_267(str) { 1753 | return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(3, 24) 1754 | } 1755 | 1756 | function makeKey_268(str) { 1757 | return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(4, 24) 1758 | } 1759 | 1760 | function makeKey_269(str) { 1761 | return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(1, 24) 1762 | } 1763 | 1764 | function makeKey_270(str) { 1765 | return hex_md5(makeKey_18(str) + makeKey_14(str)).substr(2, 24) 1766 | } 1767 | 1768 | function makeKey_271(str) { 1769 | return hex_md5(makeKey_19(str) + makeKey_15(str)).substr(3, 24) 1770 | } 1771 | 1772 | function makeKey_272(str) { 1773 | return hex_md5(makeKey_0(str) + makeKey_16(str)).substr(4, 24) 1774 | } 1775 | 1776 | function makeKey_273(str) { 1777 | return hex_md5(makeKey_1(str) + makeKey_9(str)).substr(3, 24) 1778 | } 1779 | 1780 | function makeKey_274(str) { 1781 | return hex_md5(makeKey_19(str) + makeKey_1(str)).substr(4, 24) 1782 | } 1783 | 1784 | function makeKey_275(str) { 1785 | return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(1, 24) 1786 | } 1787 | 1788 | function makeKey_276(str) { 1789 | return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(2, 24) 1790 | } 1791 | 1792 | function makeKey_277(str) { 1793 | return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(2, 24) 1794 | } 1795 | 1796 | function makeKey_278(str) { 1797 | return hex_md5(makeKey_5(str) + makeKey_4(str)).substr(3, 24) 1798 | } 1799 | 1800 | function makeKey_279(str) { 1801 | return hex_md5(makeKey_3(str) + makeKey_5(str)).substr(1, 24) 1802 | } 1803 | 1804 | function makeKey_280(str) { 1805 | return hex_md5(makeKey_7(str) + makeKey_3(str)).substr(2, 24) 1806 | } 1807 | 1808 | function makeKey_281(str) { 1809 | return hex_md5(makeKey_17(str) + makeKey_7(str)).substr(3, 24) 1810 | } 1811 | 1812 | function makeKey_282(str) { 1813 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(4, 24) 1814 | } 1815 | 1816 | function makeKey_283(str) { 1817 | return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(1, 24) 1818 | } 1819 | 1820 | function makeKey_284(str) { 1821 | return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(2, 24) 1822 | } 1823 | 1824 | function makeKey_285(str) { 1825 | return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(3, 24) 1826 | } 1827 | 1828 | function makeKey_286(str) { 1829 | return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(4, 24) 1830 | } 1831 | 1832 | function makeKey_287(str) { 1833 | return hex_md5(makeKey_14(str) + makeKey_4(str)).substr(1, 24) 1834 | } 1835 | 1836 | function makeKey_288(str) { 1837 | return hex_md5(makeKey_15(str) + makeKey_14(str)).substr(3, 24) 1838 | } 1839 | 1840 | function makeKey_289(str) { 1841 | return hex_md5(makeKey_16(str) + makeKey_15(str)).substr(1, 24) 1842 | } 1843 | 1844 | function makeKey_290(str) { 1845 | return hex_md5(makeKey_9(str) + makeKey_16(str)).substr(2, 24) 1846 | } 1847 | 1848 | function makeKey_291(str) { 1849 | return hex_md5(makeKey_10(str) + makeKey_9(str)).substr(3, 24) 1850 | } 1851 | 1852 | function makeKey_292(str) { 1853 | return hex_md5(makeKey_17(str) + makeKey_10(str)).substr(4, 24) 1854 | } 1855 | 1856 | function makeKey_293(str) { 1857 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(3, 24) 1858 | } 1859 | 1860 | function makeKey_294(str) { 1861 | return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(4, 24) 1862 | } 1863 | 1864 | function makeKey_295(str) { 1865 | return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(4, 24) 1866 | } 1867 | 1868 | function makeKey_296(str) { 1869 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(1, 24) 1870 | } 1871 | 1872 | function makeKey_297(str) { 1873 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(2, 24) 1874 | } 1875 | 1876 | function makeKey_298(str) { 1877 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(3, 24) 1878 | } 1879 | 1880 | function makeKey_299(str) { 1881 | return hex_md5(makeKey_5(str) + makeKey_5(str)).substr(4, 24) 1882 | } 1883 | 1884 | function makeKey_300(str) { 1885 | return hex_md5(makeKey_3(str) + makeKey_3(str)).substr(1, 24) 1886 | } 1887 | 1888 | function makeKey_301(str) { 1889 | return hex_md5(makeKey_7(str) + makeKey_7(str)).substr(2, 24) 1890 | } 1891 | 1892 | function makeKey_302(str) { 1893 | return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(3, 24) 1894 | } 1895 | 1896 | function makeKey_303(str) { 1897 | return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(4, 24) 1898 | } 1899 | 1900 | function makeKey_304(str) { 1901 | return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(3, 24) 1902 | } 1903 | 1904 | function makeKey_305(str) { 1905 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(4, 24) 1906 | } 1907 | 1908 | function makeKey_306(str) { 1909 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(1, 24) 1910 | } 1911 | 1912 | function makeKey_307(str) { 1913 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(2, 24) 1914 | } 1915 | 1916 | function makeKey_308(str) { 1917 | return hex_md5(makeKey_14(str) + makeKey_14(str)).substr(2, 24) 1918 | } 1919 | 1920 | function makeKey_309(str) { 1921 | return hex_md5(makeKey_15(str) + makeKey_15(str)).substr(3, 24) 1922 | } 1923 | 1924 | function makeKey_310(str) { 1925 | return hex_md5(makeKey_16(str) + makeKey_16(str)).substr(1, 24) 1926 | } 1927 | 1928 | function makeKey_311(str) { 1929 | return hex_md5(makeKey_9(str) + makeKey_9(str)).substr(2, 24) 1930 | } 1931 | 1932 | function makeKey_312(str) { 1933 | return hex_md5(makeKey_10(str) + makeKey_10(str)).substr(3, 24) 1934 | } 1935 | 1936 | function makeKey_313(str) { 1937 | return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(4, 24) 1938 | } 1939 | 1940 | function makeKey_314(str) { 1941 | return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(1, 24) 1942 | } 1943 | 1944 | function makeKey_315(str) { 1945 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(2, 24) 1946 | } 1947 | 1948 | function makeKey_316(str) { 1949 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(3, 24) 1950 | } 1951 | 1952 | function makeKey_317(str) { 1953 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(4, 24) 1954 | } 1955 | 1956 | function makeKey_318(str) { 1957 | return hex_md5(makeKey_5(str) + makeKey_5(str)).substr(1, 24) 1958 | } 1959 | 1960 | function makeKey_319(str) { 1961 | return hex_md5(makeKey_3(str) + makeKey_3(str)).substr(3, 24) 1962 | } 1963 | 1964 | function makeKey_320(str) { 1965 | return hex_md5(makeKey_7(str) + makeKey_7(str)).substr(1, 24) 1966 | } 1967 | 1968 | function makeKey_321(str) { 1969 | return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(2, 24) 1970 | } 1971 | 1972 | function makeKey_322(str) { 1973 | return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(3, 24) 1974 | } 1975 | 1976 | function makeKey_323(str) { 1977 | return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(4, 24) 1978 | } 1979 | 1980 | function makeKey_324(str) { 1981 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(3, 24) 1982 | } 1983 | 1984 | function makeKey_325(str) { 1985 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(4, 24) 1986 | } 1987 | 1988 | function makeKey_326(str) { 1989 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(4, 24) 1990 | } 1991 | 1992 | function makeKey_327(str) { 1993 | return hex_md5(makeKey_19(str) + makeKey_14(str)).substr(1, 24) 1994 | } 1995 | 1996 | function makeKey_328(str) { 1997 | return hex_md5(makeKey_0(str) + makeKey_15(str)).substr(2, 24) 1998 | } 1999 | 2000 | function makeKey_329(str) { 2001 | return hex_md5(makeKey_1(str) + makeKey_16(str)).substr(3, 24) 2002 | } 2003 | 2004 | function makeKey_330(str) { 2005 | return hex_md5(makeKey_4(str) + makeKey_9(str)).substr(4, 24) 2006 | } 2007 | 2008 | function makeKey_331(str) { 2009 | return hex_md5(makeKey_19(str) + makeKey_10(str)).substr(1, 24) 2010 | } 2011 | 2012 | function makeKey_332(str) { 2013 | return hex_md5(makeKey_0(str) + makeKey_17(str)).substr(2, 24) 2014 | } 2015 | 2016 | function makeKey_333(str) { 2017 | return hex_md5(makeKey_1(str) + makeKey_18(str)).substr(3, 24) 2018 | } 2019 | 2020 | function makeKey_334(str) { 2021 | return hex_md5(makeKey_4(str) + makeKey_18(str)).substr(4, 24) 2022 | } 2023 | 2024 | function makeKey_335(str) { 2025 | return hex_md5(makeKey_5(str) + makeKey_19(str)).substr(3, 24) 2026 | } 2027 | 2028 | function makeKey_336(str) { 2029 | return hex_md5(makeKey_3(str) + makeKey_0(str)).substr(4, 24) 2030 | } 2031 | 2032 | function makeKey_337(str) { 2033 | return hex_md5(makeKey_7(str) + makeKey_1(str)).substr(2, 24) 2034 | } 2035 | 2036 | function makeKey_338(str) { 2037 | return hex_md5(makeKey_0(str) + makeKey_4(str)).substr(3, 24) 2038 | } 2039 | 2040 | function makeKey_339(str) { 2041 | return hex_md5(makeKey_1(str) + makeKey_5(str)).substr(1, 24) 2042 | } 2043 | 2044 | function makeKey_340(str) { 2045 | return hex_md5(makeKey_4(str) + makeKey_3(str)).substr(2, 24) 2046 | } 2047 | 2048 | function makeKey_341(str) { 2049 | return hex_md5(makeKey_17(str) + makeKey_7(str)).substr(3, 24) 2050 | } 2051 | 2052 | function makeKey_342(str) { 2053 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(4, 24) 2054 | } 2055 | 2056 | function makeKey_343(str) { 2057 | return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(1, 24) 2058 | } 2059 | 2060 | function makeKey_344(str) { 2061 | return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(2, 24) 2062 | } 2063 | 2064 | function makeKey_345(str) { 2065 | return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(3, 24) 2066 | } 2067 | 2068 | function makeKey_346(str) { 2069 | return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(4, 24) 2070 | } 2071 | 2072 | function makeKey_347(str) { 2073 | return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(1, 24) 2074 | } 2075 | 2076 | function makeKey_348(str) { 2077 | return hex_md5(makeKey_10(str) + makeKey_14(str)).substr(3, 24) 2078 | } 2079 | 2080 | function makeKey_349(str) { 2081 | return hex_md5(makeKey_17(str) + makeKey_15(str)).substr(1, 24) 2082 | } 2083 | 2084 | function makeKey_350(str) { 2085 | return hex_md5(makeKey_18(str) + makeKey_16(str)).substr(2, 24) 2086 | } 2087 | 2088 | function makeKey_351(str) { 2089 | return hex_md5(makeKey_19(str) + makeKey_9(str)).substr(3, 24) 2090 | } 2091 | 2092 | function makeKey_352(str) { 2093 | return hex_md5(makeKey_0(str) + makeKey_10(str)).substr(4, 24) 2094 | } 2095 | 2096 | function makeKey_353(str) { 2097 | return hex_md5(makeKey_1(str) + makeKey_17(str)).substr(3, 24) 2098 | } 2099 | 2100 | function makeKey_354(str) { 2101 | return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(4, 24) 2102 | } 2103 | 2104 | function makeKey_355(str) { 2105 | return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(4, 24) 2106 | } 2107 | 2108 | function makeKey_356(str) { 2109 | return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(1, 24) 2110 | } 2111 | 2112 | function makeKey_357(str) { 2113 | return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(2, 24) 2114 | } 2115 | 2116 | function makeKey_358(str) { 2117 | return hex_md5(makeKey_4(str) + makeKey_5(str)).substr(3, 24) 2118 | } 2119 | 2120 | function makeKey_359(str) { 2121 | return hex_md5(makeKey_5(str) + makeKey_3(str)).substr(4, 24) 2122 | } 2123 | 2124 | function makeKey_360(str) { 2125 | return hex_md5(makeKey_3(str) + makeKey_7(str)).substr(2, 24) 2126 | } 2127 | 2128 | function makeKey_361(str) { 2129 | return hex_md5(makeKey_7(str) + makeKey_17(str)).substr(3, 24) 2130 | } 2131 | 2132 | function makeKey_362(str) { 2133 | return hex_md5(makeKey_17(str) + makeKey_18(str)).substr(1, 24) 2134 | } 2135 | 2136 | function makeKey_363(str) { 2137 | return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(2, 24) 2138 | } 2139 | 2140 | function makeKey_364(str) { 2141 | return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(3, 24) 2142 | } 2143 | 2144 | function makeKey_365(str) { 2145 | return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(4, 24) 2146 | } 2147 | 2148 | function makeKey_366(str) { 2149 | return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(1, 24) 2150 | } 2151 | 2152 | function makeKey_367(str) { 2153 | return hex_md5(makeKey_4(str) + makeKey_7(str)).substr(2, 24) 2154 | } 2155 | 2156 | function makeKey_368(str) { 2157 | return hex_md5(makeKey_14(str) + makeKey_17(str)).substr(3, 24) 2158 | } 2159 | 2160 | function makeKey_369(str) { 2161 | return hex_md5(makeKey_15(str) + makeKey_18(str)).substr(4, 24) 2162 | } 2163 | 2164 | function makeKey_370(str) { 2165 | return hex_md5(makeKey_16(str) + makeKey_19(str)).substr(1, 24) 2166 | } 2167 | 2168 | function makeKey_371(str) { 2169 | return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(3, 24) 2170 | } 2171 | 2172 | function makeKey_372(str) { 2173 | return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(1, 24) 2174 | } 2175 | 2176 | function makeKey_373(str) { 2177 | return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(2, 24) 2178 | } 2179 | 2180 | function makeKey_374(str) { 2181 | return hex_md5(makeKey_19(str) + makeKey_17(str)).substr(3, 24) 2182 | } 2183 | 2184 | function makeKey_375(str) { 2185 | return hex_md5(makeKey_0(str) + makeKey_18(str)).substr(4, 24) 2186 | } 2187 | 2188 | function makeKey_376(str) { 2189 | return hex_md5(makeKey_1(str) + makeKey_19(str)).substr(3, 24) 2190 | } 2191 | 2192 | function makeKey_377(str) { 2193 | return hex_md5(makeKey_4(str) + makeKey_0(str)).substr(4, 24) 2194 | } 2195 | 2196 | function makeKey_378(str) { 2197 | return hex_md5(makeKey_5(str) + makeKey_1(str)).substr(4, 24) 2198 | } 2199 | 2200 | function makeKey_379(str) { 2201 | return hex_md5(makeKey_3(str) + makeKey_4(str)).substr(1, 24) 2202 | } 2203 | 2204 | function makeKey_380(str) { 2205 | return hex_md5(makeKey_7(str) + makeKey_9(str)).substr(2, 24) 2206 | } 2207 | 2208 | function makeKey_381(str) { 2209 | return hex_md5(makeKey_17(str) + makeKey_10(str)).substr(3, 24) 2210 | } 2211 | 2212 | function makeKey_382(str) { 2213 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(4, 24) 2214 | } 2215 | 2216 | function makeKey_383(str) { 2217 | return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(1, 24) 2218 | } 2219 | 2220 | function makeKey_384(str) { 2221 | return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(2, 24) 2222 | } 2223 | 2224 | function makeKey_385(str) { 2225 | return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(3, 24) 2226 | } 2227 | 2228 | function makeKey_386(str) { 2229 | return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(4, 24) 2230 | } 2231 | 2232 | function makeKey_387(str) { 2233 | return hex_md5(makeKey_17(str) + makeKey_1(str)).substr(2, 24) 2234 | } 2235 | 2236 | function makeKey_388(str) { 2237 | return hex_md5(makeKey_18(str) + makeKey_4(str)).substr(3, 24) 2238 | } 2239 | 2240 | function makeKey_389(str) { 2241 | return hex_md5(makeKey_19(str) + makeKey_7(str)).substr(1, 24) 2242 | } 2243 | 2244 | function makeKey_390(str) { 2245 | return hex_md5(makeKey_0(str) + makeKey_17(str)).substr(2, 24) 2246 | } 2247 | 2248 | function makeKey_391(str) { 2249 | return hex_md5(makeKey_1(str) + makeKey_18(str)).substr(3, 24) 2250 | } 2251 | 2252 | function makeKey_392(str) { 2253 | return hex_md5(makeKey_4(str) + makeKey_19(str)).substr(4, 24) 2254 | } 2255 | 2256 | function makeKey_393(str) { 2257 | return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(1, 24) 2258 | } 2259 | 2260 | function makeKey_394(str) { 2261 | return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(2, 24) 2262 | } 2263 | 2264 | function makeKey_395(str) { 2265 | return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(3, 24) 2266 | } 2267 | 2268 | function makeKey_396(str) { 2269 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(4, 24) 2270 | } 2271 | 2272 | function makeKey_397(str) { 2273 | return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(1, 24) 2274 | } 2275 | 2276 | function makeKey_398(str) { 2277 | return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(3, 24) 2278 | } 2279 | 2280 | function makeKey_399(str) { 2281 | return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(1, 24) 2282 | } 2283 | 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]; 2284 | var funIndex = strToLong(cookie) % arrFun.length; 2285 | var fun = arrFun[funIndex]; 2286 | var result = fun(cookie); 2287 | return result; 2288 | } -------------------------------------------------------------------------------- /gland_mmewmd/ywtu.js: -------------------------------------------------------------------------------- 1 | function _$go(_$EO) { 2 | function _$az() { 3 | var _$BF = _$h7[_$EO.charCodeAt(_$fq++)]; 4 | if (_$BF < 0) { 5 | return _$h7[_$EO.charCodeAt(_$fq++)] * 7396 + _$h7[_$EO.charCodeAt(_$fq++)] * 86 + _$h7[_$EO.charCodeAt(_$fq++)]; 6 | } else if (_$BF < 64) { 7 | return _$BF; 8 | } else if (_$BF <= 86) { 9 | return _$BF * 86 + _$h7[_$EO.charCodeAt(_$fq++)] - 5440; 10 | } 11 | } 12 | 13 | var _$pM = _$EO.length, _$fq = 0, _$EA, _$Cz = 0, _$h7 = _$z0()[5]; 14 | var _$Ea = _$az(); 15 | _$kI = _$Hi(_$kI); 16 | _$FM = _$Hi(_$FM); 17 | var _$zG = new Array(_$Ea); 18 | while (_$fq < _$pM) { 19 | _$EA = _$az(); 20 | _$zG[_$Cz++] = _$EO.substr(_$fq, _$EA); 21 | _$fq += _$EA; 22 | } 23 | _$Hc = function (_$BF) { 24 | var _$Cl = _$BF % 64; 25 | var _$Cs = _$BF - _$Cl; 26 | _$Cl = _$nM(_$Cl); 27 | _$Cl ^= _$kI; 28 | _$Cs += _$Cl; 29 | return _$zG[_$Cs]; 30 | }; 31 | } 32 | function _$nM(_$Cz) { 33 | var _$h7 = [0, 1, 3, 7, 0xf, 0x1f]; 34 | return (_$Cz >> _$FM) | ((_$Cz & _$h7[_$FM]) << (6 - _$FM)); 35 | } 36 | function _$Hi(_$Cz, _$h7) { 37 | _$Cz = parseInt(_$Cz); 38 | if (!isNaN(_$Cz)) return _$Cz; 39 | if (arguments.length > 1) return _$h7; 40 | return NaN; 41 | } 42 | 43 | function _$pZ(){ 44 | return "" 45 | } 46 | 47 | function _$xR() { 48 | return "qrcklmDoExthWJiHAp1sVYKU3RFMQw8IGfPO92bvLNj.7zXBaSnu0TC6gy_4Ze5d{}|~ !#$%()*+,-:=?@[]^".split(_$pZ()); 49 | } 50 | 51 | function _$zh(_$h7, _$Cz, _$fq, _$Ea) { 52 | for (; _$Cz < _$fq; _$Cz++) { 53 | _$h7[_$Cz] = _$Ea; 54 | } 55 | } 56 | 57 | function _$wV() { 58 | var _$fq = _$xR(); 59 | var _$Cz = []; 60 | for (var _$az = 0; _$az < 6; _$az++) { 61 | _$Cz[_$az] = []; 62 | } 63 | _$z0 = function () { 64 | return _$Cz; 65 | }; 66 | var _$pM = _$Cz[0], _$Ea = _$Cz[1], _$EA = _$Cz[2], _$EO = _$Cz[3], _$ht = _$Cz[4], _$h7 = _$Cz[5]; 67 | _$zh(_$h7, 0, 255, -1); 68 | for (_$az = 0; _$az < _$fq.length; _$az++) { 69 | var _$zG = _$fq[_$az].charCodeAt(0); 70 | _$pM[_$zG] = _$az << 2; 71 | _$Ea[_$zG] = _$az >> 4; 72 | _$EA[_$zG] = (_$az & 15) << 4; 73 | _$EO[_$zG] = _$az >> 2; 74 | _$ht[_$zG] = (_$az & 3) << 6; 75 | _$h7[_$zG] = _$az; 76 | } 77 | } 78 | 79 | function _$Em() { 80 | return _$BI._$b0(); 81 | } 82 | function _$vz() { 83 | return _$BI._$ap(); 84 | } 85 | function _$qy(meta) { 86 | function _$Ea() { 87 | var _$zG = _$Cz.charCodeAt(_$pM); 88 | if (_$zG >= 40) { 89 | _$pM++; 90 | return _$zG - 40; 91 | } 92 | var _$EA = 39 - _$zG; 93 | _$zG = 0; 94 | for (var _$az = 0; _$az < _$EA; _$az++) { 95 | _$zG *= 87; 96 | _$zG += _$Cz.charCodeAt(_$pM + 1 + _$az) - 40; 97 | } 98 | _$pM += _$EA + 1; 99 | return _$zG + 87; 100 | } 101 | 102 | function _$EO() { 103 | var _$EA = _$Ea(); 104 | var _$az = _$Cz.substr(_$pM, _$EA); 105 | _$pM += _$EA; 106 | return _$az; 107 | } 108 | 109 | function _$h7() { 110 | return _$Cz.substr(_$pM); 111 | } 112 | 113 | var _$Cz = meta, _$pM = 0, _$fq = {}; 114 | _$fq._$b0 = _$EO; 115 | _$fq._$ap = _$h7; 116 | return _$fq; 117 | } 118 | var _$Hc = undefined; 119 | // _$go(meta); 120 | var _$BI = undefined; 121 | var _$z0 = undefined; 122 | function _$kw(){ 123 | return "`" 124 | } 125 | function _$uV() { 126 | var _$h7 = _$DY(_$Em()).split(_$kw()); 127 | for (var _$Cz = 0; _$Cz < _$h7.length; _$Cz++) _$h7[_$Cz] = _$Hi(_$h7[_$Cz]); 128 | return _$h7; 129 | } 130 | 131 | _$yS = _$Aw("qzs|u`v"); 132 | 133 | function _$fU(_$h7) { 134 | return _$h7[_$yS]; 135 | } 136 | 137 | function _$Aw(_$fq) { 138 | var _$h7, _$EO = _$fq.length, _$EA = new Array(_$EO - 1); 139 | var _$Cz = _$fq.charCodeAt(0) - 93; 140 | for (var _$pM = 0, _$Ea = 1; _$Ea < _$EO; ++_$Ea) { 141 | _$h7 = _$fq.charCodeAt(_$Ea); 142 | if (_$h7 >= 40 && _$h7 < 92) { 143 | _$h7 += _$Cz; 144 | if (_$h7 >= 92) _$h7 = _$h7 - 52; 145 | } else if (_$h7 >= 93 && _$h7 < 127) { 146 | _$h7 += _$Cz; 147 | if (_$h7 >= 127) _$h7 = _$h7 - 34; 148 | } 149 | _$EA[_$pM++] = _$h7; 150 | } 151 | return String.fromCharCode.apply(null, _$EA); 152 | } 153 | 154 | function _$DY(_$fq) { 155 | var _$h7, _$EO = _$fU(_$fq), _$EA = new Array(_$EO - 1); 156 | var _$Cz = _$fq.charCodeAt(0) - 40; 157 | for (var _$pM = 0, _$Ea = 1; _$Ea < _$EO; ++_$Ea) { 158 | _$h7 = _$fq.charCodeAt(_$Ea); 159 | if (_$h7 >= 40 && _$h7 < 127) { 160 | _$h7 += _$Cz; 161 | if (_$h7 >= 127) _$h7 = _$h7 - 87; 162 | } 163 | _$EA[_$pM++] = _$h7; 164 | } 165 | return String.fromCharCode.apply(null, _$EA); 166 | } 167 | 168 | function getc(meta){ 169 | _$BI = _$qy(meta); 170 | for(var i = 0; i < 11; i++){ 171 | var _$Ea = _$uV(); 172 | } 173 | _$kI = _$Ea[1]; 174 | _$D1 = _$Ea[0]; 175 | _$FM = _$Ea[2]; 176 | _$Em(); 177 | var r = _$vz(); 178 | _$wV(); 179 | _$go(r); 180 | return _$Hc(26) 181 | } 182 | 183 | /** 184 | * 185 | * developer: sml2h3 186 | * time: 2019.1.20 187 | * GitHub:https://github.com/sml2h3 188 | * QQ group:119794042 189 | */ 190 | 191 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | PyExecJS 2 | requests 3 | lxml -------------------------------------------------------------------------------- /spider_demo.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # coding=utf-8 3 | 4 | """ 5 | 6 | @author: sml2h3 7 | 8 | @license: (C) Copyright 2018-2020 9 | 10 | @contact: sml2h3@gmail.com 11 | 12 | @software: mmewmd_crack_for_wenshu 13 | 14 | @file: spider_demo 15 | 16 | @time: 2019-01-21 17 | """ 18 | import requests 19 | import time 20 | import execjs 21 | from lxml import etree 22 | import random 23 | from urllib import parse 24 | import re 25 | import os 26 | import json 27 | 28 | with open('encrypt.js', 'r', encoding="utf-8") as f: 29 | js1 = f.read() 30 | ctx1 = execjs.compile(js1) 31 | with open('ywtu.js', 'r', encoding="utf-8") as f: 32 | js2 = f.read() 33 | ctx2 = execjs.compile(js2) 34 | with open('vl5x.js', 'r', encoding="utf-8") as fp: 35 | js = fp.read() 36 | ctx = execjs.compile(js) 37 | with open('get_docid.js', 'r', encoding="utf-8") as fp: 38 | js = fp.read() 39 | get_docid = execjs.compile(js) 40 | 41 | 42 | class SpiderManager(object): 43 | 44 | def __init__(self, debug=False): 45 | self.f80t = "" 46 | self.f80t_n = "" 47 | self.meta = "" 48 | self.f80s = "" 49 | self.ywtu = "" 50 | self.vjkl5 = "" 51 | self.list = "" 52 | self.debug = debug 53 | self.conditions = "" 54 | self.url = "http://wenshu.court.gov.cn/List/List?sorttype=1&conditions={}" 55 | self.url_for_content = "http://wenshu.court.gov.cn/List/ListContent" 56 | self.headers = { 57 | "Accept": "*/*", 58 | "Accept-Encoding": "gzip, deflate", 59 | "Accept-Language": "zh-CN,zh;q=0.9", 60 | "Connection": "keep-alive", 61 | "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", 62 | "Host": "wenshu.court.gov.cn", 63 | "Origin": "http://wenshu.court.gov.cn", 64 | "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) " 65 | "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36" 66 | } 67 | self.cookies = { 68 | "ccpassport": "1ff98c661b8f424096c234ce889da9b0", 69 | "_gscu_2116842793": "47626758817stt18", 70 | "_gscs_2116842793": "47659453ttzz3o20|pv:14", 71 | "_gscbrs_2116842793": "1", 72 | "wzwsconfirm": "0e561c10c60c2f0d44410644eb3c2403", 73 | "wzwstemplate": "NQ==", 74 | "wzwschallenge": "-1", 75 | "wzwsvtime": "" 76 | } 77 | self.data = { 78 | "Param": "案件类型:民事案件", 79 | "Index": "", 80 | "Page": "20", 81 | "Order": "法院层级", 82 | "Direction": "asc", 83 | "vl5x": "", 84 | "number": "wens", 85 | "guid": "" 86 | } 87 | 88 | def setconditions(self, conditions: str): 89 | self.conditions = conditions 90 | 91 | def init(self): 92 | self.f80t = "" 93 | self.f80t_n = "" 94 | self.meta = "" 95 | self.f80s = "" 96 | self.ywtu = "" 97 | self.vjkl5 = "" 98 | if not self.conditions: 99 | if self.debug: 100 | print("条件不能为空") 101 | return False 102 | request_url = self.url.format(self.conditions) 103 | headers = self.headers 104 | cookies = self.cookies 105 | cookies['wzwsvtime'] = str(int(time.time())) 106 | # cookies = "; ".join(cookies) 107 | try: 108 | 109 | rsp = requests.get(request_url, headers=headers, cookies=cookies) 110 | rsp.close() 111 | except Exception as e: 112 | if self.debug: 113 | print(e) 114 | print("网络连接出错,稍等2秒后重新执行") 115 | time.sleep(2) 116 | return self.init() 117 | 118 | self.f80s = rsp.cookies['FSSBBIl1UgzbN7N80S'] 119 | self.f80t = rsp.cookies['FSSBBIl1UgzbN7N80T'] 120 | if rsp.status_code == 400: 121 | if self.debug: 122 | print("网络连接出错,稍等2秒后重新执行") 123 | time.sleep(2) 124 | return self.init() 125 | if rsp.text == "": 126 | if self.debug: 127 | print("网络连接出错,稍等2秒后重新执行") 128 | time.sleep(2) 129 | return self.init() 130 | html = etree.HTML(rsp.text) 131 | try: 132 | self.meta = html.xpath('//*[@id="9DhefwqGPrzGxEp9hPaoag"]/@content')[0] 133 | self.ywtu = ctx2.call("getc", self.meta) 134 | except AttributeError as e: 135 | print(e) 136 | print(rsp.status_code) 137 | print(rsp.text) 138 | return False 139 | return True 140 | 141 | def getvjkl5(self): 142 | request_url = self.url.format(self.conditions) 143 | headers = self.headers 144 | cookies = self.cookies 145 | cookies['wzwsvtime'] = str(int(time.time())) 146 | # self.ywtu = ctx2.call("getc", self.meta) 147 | # print(self.meta) 148 | # print(self.f80t) 149 | # print(self.ywtu) 150 | self.f80t_n = ctx1.call("getCookies", self.meta, self.f80t, self.ywtu) 151 | cookies['FSSBBIl1UgzbN7Nenable'] = "true" 152 | cookies['FSSBBIl1UgzbN7N80S'] = self.f80s 153 | cookies['FSSBBIl1UgzbN7N80T'] = self.f80t_n 154 | cookies['wzwsvtime'] = str(int(time.time())) 155 | try: 156 | rsp = requests.get(request_url, headers=headers, cookies=cookies) 157 | rsp.close() 158 | except Exception as e: 159 | if self.debug: 160 | print(e) 161 | print("获取vjkl5失败:网络连接出错") 162 | return False 163 | if rsp.status_code == 200 and "vjkl5" in rsp.cookies: 164 | self.vjkl5 = rsp.cookies['vjkl5'] 165 | return True 166 | else: 167 | if self.debug: 168 | print(self.meta) 169 | print(self.ywtu) 170 | print(self.f80t) 171 | print(self.f80t_n) 172 | print("获取vjkl5失败,code:{}".format(rsp.status_code)) 173 | if rsp.status_code == 200: 174 | print(rsp.text) 175 | print(rsp.cookies) 176 | return False 177 | 178 | def get_vl5x(self): 179 | """ 180 | 根据vjkl5获取参数vl5x 181 | """ 182 | vl5x = (ctx.call('getKey', self.vjkl5)) 183 | return vl5x 184 | 185 | def createGuid(self): 186 | return str(hex((int(((1 + random.random()) * 0x10000)) | 0)))[3:] 187 | 188 | def getguid(self): 189 | return '{}{}-{}-{}{}-{}{}{}' \ 190 | .format( 191 | self.createGuid(), self.createGuid(), 192 | self.createGuid(), self.createGuid(), 193 | self.createGuid(), self.createGuid(), 194 | self.createGuid(), self.createGuid() 195 | ) 196 | 197 | def getList(self, page): 198 | url = self.url_for_content 199 | self.f80t_n = ctx1.call("getCookies", self.meta, self.f80t, self.ywtu) 200 | vl5x = self.get_vl5x() 201 | data = self.data 202 | data['Index'] = str(page) 203 | data['vl5x'] = vl5x 204 | data['guid'] = self.getguid() 205 | cookies = self.cookies 206 | cookies['wzwsvtime'] = str(int(time.time())) 207 | cookies['FSSBBIl1UgzbN7Nenable'] = "true" 208 | cookies['FSSBBIl1UgzbN7N80S'] = self.f80s 209 | cookies['FSSBBIl1UgzbN7N80T'] = self.f80t_n 210 | cookies['vjkl5'] = self.vjkl5 211 | headers = self.headers 212 | headers['Referer'] = self.url.format(parse.quote(self.conditions)) 213 | try: 214 | rsp = requests.post(url, headers=headers, cookies=cookies, data=data) 215 | except Exception as e: 216 | if self.debug: 217 | print(e) 218 | print("获取列表页时网络请求出错") 219 | return False 220 | if rsp.status_code == 200 and "验证码" not in rsp.text: 221 | if rsp.text[0:1] == '"': 222 | list = rsp.text[1:] 223 | list = list[0: len(list) - 1] 224 | else: 225 | list = rsp.text 226 | list = list.replace('\\', '') 227 | self.list = list 228 | return True 229 | else: 230 | if self.debug: 231 | print("获取列表页出错,code:{},若code为200,可能出现了验证码".format(rsp.status_code)) 232 | return False 233 | 234 | def getListData(self): 235 | return self.list 236 | 237 | def getDocIds(self): 238 | 239 | list_json = json.loads(self.list) 240 | # print(list_json) 241 | # list_json = [{'RunEval': 'w61aS27CgzAQPQtRFsK2wqh6AcKUVcKOw5DDpcOIQhVJGhYNwpVDV1HDrl7CoMKEAnYCKcOBHcOKwpPDkETCtsOnw7PDpsONYGMpw4t9wrzDmR4jHX/CpMKrwpdUw4fCh8K3w6fCnU7DnsOXw7tXwr1ONlvDoXs+KQjDlsOiCSRAw4zCo0PDvkMiM3ldwrErwqHCthDDoB3DjELCoHpgDMOFBTsgAUwga8Kkwo7DvMKRMMKIASfCoAM8ITnCpMKECkDCoBEYChkEw6FqESXCh2PCqj/CozTDkcKLIMKkUGXCjxDDvsOpwpzCq1XDj8OpLMOpw5vCkjLCocKUL8K8YkFSw5Nnwr7DkMK9UgzClz/Dv04gwpFPZxrDpMOlK8KkKMO7aQVswqp7wqXDgcO1YC3DnFbDncKbwpjDqsOew6zDs1XCqALCtUnCkQHDgcKaw4MNw58Vw4h+wozDlsKGwp3CsHtqw5zCo3bCt8Ouw68MBlgNNX3CiD0zJw/DtjTChsK7w5F8cizChSvDh8Kld8ORw5oywozDscKVw43CjW3Dp8K1ExjCkz7CjsO9w6Mgw6MJIG7CnMK+w6M1wpvCg8Omw6rDu0LClsO5XsK+wp0mw5wPPMOiwrgPNsORwojDrhF3wofDvSNMTmNPw6VowptDCMOmAEoUw6bCt17Cj8OLL0vCvix3XcOzwpxswpzCh8O2w5nCukMacFtnRB7DsMOUw4JKIcKDLw==', 'Count': '39847561'}, {'裁判要旨段原文': '本院认为,山东省农业科学院中心实验室计量认证合格证书因未参加年检而过期,以及案涉樱桃园存在受气候因素影响而减产的事实,一、二审法院均已作出确认,山东省工业产品生产许可证办公室出具的《证明》以及中国农业新闻网的相关报道均无新的证明对象和证明内容,不构成“足以推翻', '案件类型': '2', '裁判日期': '2015-06-26', '案件名称': '山东富海实业股份有限公司、曲忠全与山东富海实业股份有限公司、曲忠全等环境污染责任纠纷再审复查与审判监督民事裁定书', '文书ID': 'FcKMwrkRA0EIw4Baw6JnCXnDuy/DicOnVCPDiR5cGB7Cj8KYbsKqdm3DtsOIwoTCssK8WcOkJsOMUBrCjcOSAW90AcKEanzDmlHCg3jCisKvwobClhJOTGJbwp5ZLMO1ZmXDlRoXw7FnwpvCtztKwoDDhTAZfcOYPxduwozDqSvDn8OhwqDDl3DCpsKGw43CuWc8w4gBwpwdw5vDr0nDh8KxwrJowooFw4jCm8KLecKTw7/ClGAswrrDncOuwrxLNADCsGR/', '审判程序': '再审审查与审判监督', '案号': '(2014)民申字第1782号', '法院名称': '最高人民法院'}, {'案件类型': '2', '裁判日期': '2014-06-23', '案件名称': '章瀚与厦门金原融资担保有限公司一般借款合同纠纷申请再审民事裁定书', '文书ID': 'DcOOw5sBADEEBcORwpbDhCPDuETDnMO+S8OabWDDjiRJVWnDq8KdKcKZFMORw7Bzw6IGw6HCvXfCscKawq0ywrMAw4Uaw7XCgSbCkTzCp8OAw4w7w6DCpngrUwvDncOkS8OuHVQmbMOZcWwFw4zDmMKJayTDok3DrxchYsKuR8Obwrx4wonDmnhRw6QXw6JnL3PChMOPCC4fKRo4TcOOwo1/dcOTQxJVFnlhMy3DkMOowoFFw6RLw7otw4gew6bDvEvDtQE=', '审判程序': '再审审查与审判监督', '案号': '(2014)民申字第966号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '本院认为:本案申请再审的焦点是库柏公司超额交付的金额为1471162元增值税发票是否构成税务损失。根据国家税务总局2006年10月17日修订的《增值税专用发票使用规定》第十四条第一款“一般纳税人取得专用发票后,发生销货退回、开票有误等情形但不符合作废条件的,或', '案件类型': '2', '裁判日期': '2014-12-17', '案件名称': '厦门聚亿电气设备有限公司与库柏电气(上海)有限公司一般买卖合同纠纷申请再审民事裁定书', '文书ID': 'HcONwrcRA0EMw4DDgMKWw6hNSHPDrMK/JMO9KELCthjChcKYZ8KVwoMKNWo5MMOtMMOOwr02GC5+woZvSsOVw7vCsFUBU8OIXMOeSsKlw4HCo8KOPMKrwrE9w7bCtcOyERE0wqkVLUXCocKewoULw4LCqMODRMKiAVrCjsOtJMKXw6LDrWLDuG5MwqDCjAHDuFw5w7dlAx7Co2JPw4QLw689ccOww7bDvsKyI3TCrsKCw6kQwrExfy3CnF4/PS3Cu8OjwrrDjMO6AQ==', '审判程序': '再审审查与审判监督', '案号': '(2014)民申字第454号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '本院认为:一、关于胡素娟、许春红是否为适格原告的问题。虽然《房地产买卖协议书》并非胡素娟、许春红亲笔所签,从协议签订到履行均由胡素娟之父胡国安代为办理,但是胡素娟、许春红对协议内容并无异议,在一、二审以及再审审查阶段均明确认可胡国安的代理行为,胡国安亦认可该事', '案件类型': '2', '裁判日期': '2014-08-28', '案件名称': '襄阳市房屋租赁修缮公司与胡素娟、许春红一般买卖合同纠纷申请再审民事裁定书', '文书ID': 'FcKMwrcNA0EMw4BWUsOWwqlUw5x/JMK/GxYEw4HCiQBTwpLCj8O3w4LClEvCtgXCisKwdgtZe8OXKcK1w7FNVRfCjFDChk3CjsOpHsKHFzsqTcOhwq7ChQRaIFTCm8OZwoLDosK6w6ljb8Ozwqc8OlDCnxMgXynCi8KJw5fClzF5woEDEMOmw5TCgnBMSXDCnRPCrRvDu8OgAMOZR8ObwrRIw6ErFcKzw7/CqzhRacK3wpsdw47Dg2o5AsOhw4tkw5c7wqsf', '审判程序': '再审审查与审判监督', '案号': '(2014)民申字第227号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '本院认为,虽然案涉房屋尚未完成竣工验收备案,不具备《昆山市商品房购销合同》中约定的交付条件。但是,根据缪永红于购房当日与东方广场公司签订的《租赁及委托经营管理合同》的约定,缪永红已经将其所购买的房屋出租给东方广场公司经营使用,并在支付装修费用后将收房、装修事项', '案件类型': '2', '裁判日期': '2014-10-23', '案件名称': '缪永红 昆山红枫房地产有限公司 昆山东方云顶广场有限公司与中信信托有限责任公司其他合同纠纷二审民事判决书5', '文书ID': 'DcKOwrcRw4BADMODVlIOwqVeYcO/wpHDrMKOBcKAYxNww4B5w7sAc8KHT8Ojwr7Cq2PCqgfDnMOiwpU1RMKuwovDoS7DssKsw6I1wrTCt0AswoElERLDrcOrwpwsLlXCjMKfZ8OWYhXDrcKSHMKTwpo9w4HCiMKKw5/Ds3jCrsO/w5BAU8KefMO5w75kwpEgw6nDlWhddxtTwrLDjcKbGQjDu8K7w67Chhk2wrnCuwjDh1DCtMK+Ox4lcTgGw41ZCHMnw7JfPXYPw7sA', '审判程序': '二审', '案号': '(2014)民一终字第122号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '本院审查认为,(一)关于处理本案当事人争议的合同依据问题。双方签订的《1.47亿元施工合同》表明,华兴公司承包了整个“天成国贸中心”的土建及安装工程;双方签订的《天成国贸中心工程施工补充协议》(以下简称《补充协议》)表明华兴公司承包“天成国贸中心”整个土建及安', '案件类型': '2', '裁判日期': '2014-03-27', '案件名称': '天成润华集团有限公司与中国核工业华兴建设有限公司建设工程施工合同纠纷申请再审审查民事裁定书', '文书ID': 'DcKOw4kJAEEIw4BaUsOHw7PDqcOZf0nCu8K/QCDDhMKGw5LDoATDhHvCiMORwprDjcKQRsOCG8OgfsKrViM9dsOgdMKpLWQlc8KDbcKYAVvChcKWwrDDpmd8Djs/U3LDu8OEwrbCjMKyw7FowqguUi89wo9bKMONeGvDu8K3JmtXw7gWwrPCgcKAwpTCicOWI14+wrzCmMKdwpDCksKrCMKrOh1HfcKvwp3Cq8KaRBJ5VVlRw745wrdAw5Ycd8Osw4rCo1cOw68D', '审判程序': '再审', '案号': '(2013)民申字第1929号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '本院认为,执行异议之诉的关键是审查购房者享有的实体权利是否足以阻却执行措施。\n其一,“二轻大厦”系繁荣公司与二轻联社共同开发建设,繁荣公司依约可取得“二轻大厦”中49%的权益。而阜承公司因受让繁荣公司在“二轻大厦”项目中所享有的49%权益分得“二轻大厦”第6', '案件类型': '2', '裁判日期': '2014-11-14', '案件名称': '方希源、蔡福英等民间借贷纠纷、案外人执行异议之诉民事判决书', '文书ID': 'DcOORxHDgDAMADBKHsOxenrDssKHw5QSw5ApwoLCn8KuHUAKQ3Baw6HDhsKOcsKnwoPCn8K5wo3Dgwssw5FyL0rCucKgworDrGYePkrCrVIIw4J6wqzDhWLCqcKvw7gxw5nCu33Cky/DosK4wogNwpHDrMOWwpPCqilBDsOnJ8KXV0jCrlzDh1zDu0UVDsOgw5EGw7UkA8KnUMKjwoDCtTLCl8OfbMOpw54QwrDDvkdDHsKiwrZVw6LDtcK+dhYcE8OCQVFqwroP', '审判程序': '二审', '案号': '(2014)民一终字第174号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '综上,四海公司的上诉理由缺乏事实和法律依据,本院不予支持。原审判决认定事实清楚,适用法律正确,依法应予维持。本院依照《中华人民共和国民事诉讼法》第一百七十条第一款第(一)项之规定,判决如下', '案件类型': '2', '裁判日期': '2014-12-20', '案件名称': '中国信达资产管理股份有限公司黑龙江省分公司与哈尔滨四海数控科技股份有限公司、刘安丽金融借款合同纠纷二审民事判决书', '文书ID': 'FcKMw4sRRDEIw4NaCl/DgzEEw6jCv8KkfXvDs8OIGlHDucK+w6TClgXDo8OeUMKcUcO3M0zCr2HCmQjCqsKcXUotdsOOAmnChCoTwpoSw6RtVnrDix/DlsOdw6rCjsO4a8O5wqp2wrxdGEXClMOuUsO9w61gw7kaw6EHwpnDscKGTsO/VWvCiB1zEE9cwphEdMOcN1jCuiwwHiU3fCbDuMKgP8KkYsKUw51rw4QWw4dnw7bDu3RWw57Dg8Ozw6PCglfDncOBw7sD', '审判程序': '二审', '案号': '(2014)民二终字第251号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '本院认为,本案再审争议的焦点问题为:(一)郑少春与中医院之间法律关系的性质与效力;(二)郑少春应否将案涉土地退还给中医院,应否以及如何支付土地占用费。\n(一)关于郑少春与中医院之间法律关系的性质与效力问题。《中华人民共和国城镇国有土地使用权出让转让暂行条例》', '案件类型': '2', '裁判日期': '2014-11-15', '案件名称': '莆田市中医院与福建省莆田市闽中田野汽车贸易有限公司、莆田市志强汽车贸易有限公司建设用地使用权纠纷审判监督民事判决书', '文书ID': 'DcOMRwHDgEAIADBLw6zDscKEA8O8S2ojIHjDtsOQTCpUw43CkyfDsw7Co0/Co8KTw4w1woN0wr15ZMODFlYHwoTCjUXCpkteBhYIFcO7Iw/ClGHCmHhGDhTDjy1DDVFyw4HDgsO9wqTCiDbCjcOGwpjDnsKEwrB2OcKiw4vCk8KGw57Cs8KgKsOEbcOUwoLDjkcsMMK8DsKqwrJkW8OjNGfCh8KKcFDCsMKlw40pWsKLwrRoFV05w7rCj8KsFEzDgMKyHw==', '审判程序': '再审', '案号': '(2014)民提字第125号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '综上,腾远公司的再审申请不符合《中华人民共和国民事诉讼法》第二百条第六项规定的情形。本院依照《中华人民共和国民事诉讼法》第二百零四条第一款之规定,裁定如下', '案件类型': '2', '裁判日期': '2015-04-29', '案件名称': '许昌市腾远房地产开发有限公司、郑州市第二建筑工程有限责任公司与许昌市腾远房地产开发有限公司、郑州市第二建筑工程有限责任公司建设工程施工合同纠纷申请再审民事裁定书', '文书ID': 'DcOOwrERBDEIBMOBwpRALAtvAhLDucKHw7TDp8K2MTXCuXJLwrTDuynDhcK8w6UJYsKswqw/wo1reFdzcMOdDcO6aMKnwq/CthbCpcOyZMKbw7nDj8OAWGXCtDHDkCwtXXUQwoDDs27DrhTDpFppUibDscKww4RQwqsHwprDqcOewp8Ra8OIW8KNO8KuwqHDssOQGsOrwp7DvMO1wpbCvcKewq5XW8ODdcOBw5HCkMKnJsOCwrDCs8Kff8OJcyptEWx+wosyw7JbdsO1Hw==', '审判程序': '再审审查与审判监督', '案号': '(2015)民申字第739号', '法院名称': '最高人民法院'}] 242 | 243 | if len(list_json) > 1: 244 | runeval = list_json[0]['RunEval'] 245 | docids = [] 246 | for item in list_json[1:]: 247 | docid = item['文书ID'] 248 | jsa = get_docid.call("GetJs", runeval) 249 | js_objs = jsa.split(";;") 250 | jsa1 = js_objs[0] + ';' 251 | 252 | jsa2 = re.findall(r"_\[_\]\[_\]\((.*?)\)\(\);", js_objs[1])[0] 253 | # jsa1 = jsa1 + jsa2 254 | jsa2 = jsa2.replace('(!![]+[])', json.dumps(list("true"))) 255 | jsa2 = jsa2.replace('(![]+[])', json.dumps(list("false"))) 256 | jsa2 = jsa2.replace('([![]]+{})', json.dumps(list("false[object Object]"))) 257 | jsa2 = jsa2.replace('(+{}+[]+[]+[]+[]+{})', json.dumps(list("NaN[object Object]"))) 258 | jsa2 = jsa2.replace('[![]]+[][[]]', json.dumps(list("falseundefined"))) 259 | jsa2 = jsa2.replace('[]+[]+{}', json.dumps(list("[object Object]"))) 260 | jsa2 = jsa2.replace('[]+[]+[][[]]', json.dumps(list("undefined"))) 261 | key = get_docid.call("EvalKey", jsa1, jsa2) 262 | # print(key) 263 | # key = key.replace("undefined", '') 264 | key = re.findall(r"\"([0-9a-z]{32})\"", key)[0] 265 | # key = key[22:50] 266 | docid = get_docid.call("DecryptDocID", key, docid) 267 | docids.append(docid) 268 | print(docids) 269 | return docids 270 | else: 271 | return False 272 | 273 | def getContent(self, docid): 274 | url = "http://wenshu.court.gov.cn/CreateContentJS/CreateContentJS.aspx?DocID={}".format(docid) 275 | self.f80t_n = ctx1.call("getCookies", self.meta, self.f80t, self.ywtu) 276 | cookies = self.cookies 277 | cookies['wzwsvtime'] = str(int(time.time())) 278 | cookies['FSSBBIl1UgzbN7Nenable'] = "true" 279 | cookies['FSSBBIl1UgzbN7N80S'] = self.f80s 280 | cookies['FSSBBIl1UgzbN7N80T'] = self.f80t_n 281 | cookies['vjkl5'] = self.vjkl5 282 | headers = self.headers 283 | headers['Referer'] = self.url.format(parse.quote(self.conditions)) 284 | try: 285 | rsp = requests.get(url, headers=headers, cookies=cookies) 286 | except Exception as e: 287 | if self.debug: 288 | print(e) 289 | print("获取内容时网络请求出错") 290 | return False 291 | if rsp.status_code == 200 and "验证码" not in rsp.text: 292 | print(rsp.text) 293 | return True 294 | else: 295 | if self.debug: 296 | print("获取内容出错,code:{},若code为200,可能出现了验证码".format(rsp.status_code)) 297 | return False 298 | 299 | 300 | if __name__ == '__main__': 301 | 302 | # # 实例化并开启调试模式,会返回报错信息 303 | # for i in range(10): 304 | spider = SpiderManager(debug=True) 305 | # 设置采集条件 306 | spider.setconditions("searchWord+2+AJLX++案件类型:民事案件") 307 | # 初始化 308 | init_status = spider.init() 309 | if init_status: 310 | print("初始化成功") 311 | status = spider.getvjkl5() 312 | if status: 313 | print("获取vjkl5成功") 314 | status = spider.getList(page=1) 315 | if status: 316 | print("获取列表页内容成功") 317 | print(spider.getListData()) 318 | docids = spider.getDocIds() 319 | if docids: 320 | for item in docids: 321 | spider.getContent(item) 322 | else: 323 | print("解密失败") 324 | else: 325 | print("获取列表页内容失败") 326 | 327 | else: 328 | # 自己写,重新获得getvjkl5 329 | pass 330 | 331 | else: 332 | print("初始化失败") 333 | # continue 334 | -------------------------------------------------------------------------------- /spider_demo_proxy_abuyun.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # coding=utf-8 3 | 4 | """ 5 | 6 | @author: sml2h3 7 | 8 | @license: (C) Copyright 2018-2020 9 | 10 | @contact: sml2h3@gmail.com 11 | 12 | @software: mmewmd_crack_for_wenshu 13 | 14 | @file: spider_demo 15 | 16 | @time: 2019-01-21 17 | """ 18 | import requests 19 | import time 20 | import execjs 21 | from lxml import etree 22 | import random 23 | from urllib import parse 24 | import re 25 | import json 26 | 27 | # 改成你的代理IP,格式为:http://ip:port 28 | proxyMeta = "http://127.0.0.1:8080" 29 | 30 | proxies = { 31 | "http": proxyMeta, 32 | "https": proxyMeta, 33 | } 34 | 35 | with open('encrypt.js', 'r', encoding="utf-8") as f: 36 | js1 = f.read() 37 | ctx1 = execjs.compile(js1) 38 | with open('ywtu.js', 'r', encoding="utf-8") as f: 39 | js2 = f.read() 40 | ctx2 = execjs.compile(js2) 41 | with open('vl5x.js', 'r', encoding="utf-8") as fp: 42 | js = fp.read() 43 | ctx = execjs.compile(js) 44 | with open('get_docid.js', 'r', encoding="utf-8") as fp: 45 | js = fp.read() 46 | get_docid = execjs.compile(js) 47 | 48 | 49 | 50 | 51 | class SpiderManager(object): 52 | 53 | def __init__(self, debug=False): 54 | self.f80t = "" 55 | self.f80t_n = "" 56 | self.meta = "" 57 | self.f80s = "" 58 | self.ywtu = "" 59 | self.vjkl5 = "" 60 | self.list = "" 61 | self.debug = debug 62 | self.conditions = "" 63 | self.url = "http://wenshu.court.gov.cn/List/List?sorttype=1&conditions={}" 64 | self.url_for_content = "http://wenshu.court.gov.cn/List/ListContent" 65 | self.headers = { 66 | "Accept": "*/*", 67 | "Accept-Encoding": "gzip, deflate", 68 | "Accept-Language": "zh-CN,zh;q=0.9", 69 | "Connection": "keep-alive", 70 | "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", 71 | "Host": "wenshu.court.gov.cn", 72 | "Origin": "http://wenshu.court.gov.cn", 73 | "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) " 74 | "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36" 75 | } 76 | self.cookies = { 77 | "ccpassport": "1ff98c661b8f424096c234ce889da9b0", 78 | "_gscu_2116842793": "47626758817stt18", 79 | "_gscs_2116842793": "47659453ttzz3o20|pv:14", 80 | "_gscbrs_2116842793": "1", 81 | "wzwsconfirm": "0e561c10c60c2f0d44410644eb3c2403", 82 | "wzwstemplate": "NQ==", 83 | "wzwschallenge": "-1", 84 | "wzwsvtime": "" 85 | } 86 | self.data = { 87 | "Param": "案件类型:民事案件", 88 | "Index": "", 89 | "Page": "20", 90 | "Order": "法院层级", 91 | "Direction": "asc", 92 | "vl5x": "", 93 | "number": "wens", 94 | "guid": "" 95 | } 96 | 97 | def setconditions(self, conditions: str): 98 | self.conditions = conditions 99 | 100 | def init(self): 101 | self.f80t = "" 102 | self.f80t_n = "" 103 | self.meta = "" 104 | self.f80s = "" 105 | self.ywtu = "" 106 | self.vjkl5 = "" 107 | if not self.conditions: 108 | if self.debug: 109 | print("条件不能为空") 110 | return False 111 | request_url = self.url.format(self.conditions) 112 | headers = self.headers 113 | cookies = self.cookies 114 | cookies['wzwsvtime'] = str(int(time.time())) 115 | # cookies = "; ".join(cookies) 116 | try: 117 | 118 | rsp = requests.get(request_url, headers=headers, cookies=cookies, proxies=proxies) 119 | rsp.close() 120 | except Exception as e: 121 | if self.debug: 122 | print(e) 123 | print("网络连接出错,稍等5秒后重新执行") 124 | time.sleep(5) 125 | return self.init() 126 | 127 | self.f80s = rsp.cookies['FSSBBIl1UgzbN7N80S'] 128 | self.f80t = rsp.cookies['FSSBBIl1UgzbN7N80T'] 129 | html = etree.HTML(rsp.text) 130 | try: 131 | self.meta = html.xpath('//*[@id="9DhefwqGPrzGxEp9hPaoag"]/@content')[0] 132 | self.ywtu = ctx2.call("getc", self.meta) 133 | except AttributeError as e: 134 | print(e) 135 | print(rsp.status_code) 136 | print(rsp.text) 137 | return False 138 | return True 139 | 140 | def getvjkl5(self): 141 | request_url = self.url.format(self.conditions) 142 | headers = self.headers 143 | cookies = self.cookies 144 | cookies['wzwsvtime'] = str(int(time.time())) 145 | # self.ywtu = ctx2.call("getc", self.meta) 146 | self.f80t_n = ctx1.call("getCookies", self.meta, self.f80t, self.ywtu) 147 | 148 | cookies['FSSBBIl1UgzbN7Nenable'] = "true" 149 | cookies['FSSBBIl1UgzbN7N80S'] = self.f80s 150 | cookies['FSSBBIl1UgzbN7N80T'] = self.f80t_n 151 | cookies['wzwsvtime'] = str(int(time.time())) 152 | try: 153 | rsp = requests.get(request_url, headers=headers, cookies=cookies, proxies=proxies) 154 | rsp.close() 155 | except Exception as e: 156 | if self.debug: 157 | print(e) 158 | print("获取vjkl5失败:网络连接出错") 159 | return False 160 | if rsp.status_code == 200 and "vjkl5" in rsp.cookies: 161 | self.vjkl5 = rsp.cookies['vjkl5'] 162 | return True 163 | else: 164 | if self.debug: 165 | print(self.meta) 166 | print(self.ywtu) 167 | print(self.f80t) 168 | print(self.f80t_n) 169 | print("获取vjkl5失败,code:{}".format(rsp.status_code)) 170 | if rsp.status_code == 200: 171 | print(rsp.text) 172 | print(rsp.cookies) 173 | return False 174 | 175 | def get_vl5x(self): 176 | """ 177 | 根据vjkl5获取参数vl5x 178 | """ 179 | vl5x = (ctx.call('getKey', self.vjkl5)) 180 | return vl5x 181 | 182 | def createGuid(self): 183 | return str(hex((int(((1 + random.random()) * 0x10000)) | 0)))[3:] 184 | 185 | def getguid(self): 186 | return '{}{}-{}-{}{}-{}{}{}' \ 187 | .format( 188 | self.createGuid(), self.createGuid(), 189 | self.createGuid(), self.createGuid(), 190 | self.createGuid(), self.createGuid(), 191 | self.createGuid(), self.createGuid() 192 | ) 193 | 194 | def getList(self, page): 195 | url = self.url_for_content 196 | self.f80t_n = ctx1.call("getCookies", self.meta, self.f80t, self.ywtu) 197 | vl5x = self.get_vl5x() 198 | data = self.data 199 | data['Index'] = str(page) 200 | data['vl5x'] = vl5x 201 | data['guid'] = self.getguid() 202 | cookies = self.cookies 203 | cookies['wzwsvtime'] = str(int(time.time())) 204 | cookies['FSSBBIl1UgzbN7Nenable'] = "true" 205 | cookies['FSSBBIl1UgzbN7N80S'] = self.f80s 206 | cookies['FSSBBIl1UgzbN7N80T'] = self.f80t_n 207 | cookies['vjkl5'] = self.vjkl5 208 | headers = self.headers 209 | headers['Referer'] = self.url.format(parse.quote(self.conditions)) 210 | try: 211 | rsp = requests.post(url, headers=headers, cookies=cookies, data=data, proxies=proxies) 212 | except Exception as e: 213 | if self.debug: 214 | print(e) 215 | print("获取列表页时网络请求出错") 216 | return False 217 | if rsp.status_code == 200 and "验证码" not in rsp.text: 218 | self.list = rsp.text 219 | return True 220 | else: 221 | if self.debug: 222 | print("获取列表页出错,code:{},若code为200,可能出现了验证码".format(rsp.status_code)) 223 | return False 224 | 225 | def getListData(self): 226 | return self.list 227 | 228 | def getDocIds(self): 229 | list_json = json.loads(json.loads(self.list)) 230 | # print(list_json) 231 | # list_json = [{'RunEval': 'w61aS27CgzAQPQtRFsK2wqh6AcKUVcKOw5DDpcOIQhVJGhYNwpVDV1HDrl7CoMKEAnYCKcOBHcOKwpPDkETCtsOnw7PDpsONYGMpw4t9wrzDmR4jHX/CpMKrwpdUw4fCh8K3w6fCnU7DnsOXw7tXwr1ONlvDoXs+KQjDlsOiCSRAw4zCo0PDvkMiM3ldwrErwqHCthDDoB3DjELCoHpgDMOFBTsgAUwga8Kkwo7DvMKRMMKIASfCoAM8ITnCpMKECkDCoBEYChkEw6FqESXCh2PCqj/CozTDkcKLIMKkUGXCjxDDvsOpwpzCq1XDj8OpLMOpw5vCkjLCocKUL8K8YkFSw5Nnwr7DkMK9UgzClz/Dv04gwpFPZxrDpMOlK8KkKMO7aQVswqp7wqXDgcO1YC3DnFbDncKbwpjDqsOew6zDs1XCqALCtUnCkQHDgcKaw4MNw58Vw4h+wozDlsKGwp3CsHtqw5zCo3bCt8Ouw68MBlgNNX3CiD0zJw/DtjTChsK7w5F8cizChSvDh8Kld8ORw5oywozDscKVw43CjW3Dp8K1ExjCkz7CjsO9w6Mgw6MJIG7CnMK+w6M1wpvCg8Omw6rDu0LClsO5XsK+wp0mw5wPPMOiwrgPNsORwojDrhF3wofDvSNMTmNPw6VowptDCMOmAEoUw6bCt17Cj8OLL0vCvix3XcOzwpxswpzCh8O2w5nCukMacFtnRB7DsMOUw4JKIcKDLw==', 'Count': '39847561'}, {'裁判要旨段原文': '本院认为,山东省农业科学院中心实验室计量认证合格证书因未参加年检而过期,以及案涉樱桃园存在受气候因素影响而减产的事实,一、二审法院均已作出确认,山东省工业产品生产许可证办公室出具的《证明》以及中国农业新闻网的相关报道均无新的证明对象和证明内容,不构成“足以推翻', '案件类型': '2', '裁判日期': '2015-06-26', '案件名称': '山东富海实业股份有限公司、曲忠全与山东富海实业股份有限公司、曲忠全等环境污染责任纠纷再审复查与审判监督民事裁定书', '文书ID': 'FcKMwrkRA0EIw4Baw6JnCXnDuy/DicOnVCPDiR5cGB7Cj8KYbsKqdm3DtsOIwoTCssK8WcOkJsOMUBrCjcOSAW90AcKEanzDmlHCg3jCisKvwobClhJOTGJbwp5ZLMO1ZmXDlRoXw7FnwpvCtztKwoDDhTAZfcOYPxduwozDqSvDn8OhwqDDl3DCpsKGw43CuWc8w4gBwpwdw5vDr0nDh8KxwrJowooFw4jCm8KLecKTw7/ClGAswrrDncOuwrxLNADCsGR/', '审判程序': '再审审查与审判监督', '案号': '(2014)民申字第1782号', '法院名称': '最高人民法院'}, {'案件类型': '2', '裁判日期': '2014-06-23', '案件名称': '章瀚与厦门金原融资担保有限公司一般借款合同纠纷申请再审民事裁定书', '文书ID': 'DcOOw5sBADEEBcORwpbDhCPDuETDnMO+S8OabWDDjiRJVWnDq8KdKcKZFMORw7Bzw6IGw6HCvXfCscKawq0ywrMAw4Uaw7XCgSbCkTzCp8OAw4w7w6DCpngrUwvDncOkS8OuHVQmbMOZcWwFw4zDmMKJayTDok3DrxchYsKuR8Obwrx4wonDmnhRw6QXw6JnL3PChMOPCC4fKRo4TcOOwo1/dcOTQxJVFnlhMy3DkMOowoFFw6RLw7otw4gew6bDvEvDtQE=', '审判程序': '再审审查与审判监督', '案号': '(2014)民申字第966号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '本院认为:本案申请再审的焦点是库柏公司超额交付的金额为1471162元增值税发票是否构成税务损失。根据国家税务总局2006年10月17日修订的《增值税专用发票使用规定》第十四条第一款“一般纳税人取得专用发票后,发生销货退回、开票有误等情形但不符合作废条件的,或', '案件类型': '2', '裁判日期': '2014-12-17', '案件名称': '厦门聚亿电气设备有限公司与库柏电气(上海)有限公司一般买卖合同纠纷申请再审民事裁定书', '文书ID': 'HcONwrcRA0EMw4DDgMKWw6hNSHPDrMK/JMO9KELCthjChcKYZ8KVwoMKNWo5MMOtMMOOwr02GC5+woZvSsOVw7vCsFUBU8OIXMOeSsKlw4HCo8KOPMKrwrE9w7bCtcOyERE0wqkVLUXCocKewoULw4LCqMODRMKiAVrCjsOtJMKXw6LDrWLDuG5MwqDCjAHDuFw5w7dlAx7Co2JPw4QLw689ccOww7bDvsKyI3TCrsKCw6kQwrExfy3CnF4/PS3Cu8OjwrrDjMO6AQ==', '审判程序': '再审审查与审判监督', '案号': '(2014)民申字第454号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '本院认为:一、关于胡素娟、许春红是否为适格原告的问题。虽然《房地产买卖协议书》并非胡素娟、许春红亲笔所签,从协议签订到履行均由胡素娟之父胡国安代为办理,但是胡素娟、许春红对协议内容并无异议,在一、二审以及再审审查阶段均明确认可胡国安的代理行为,胡国安亦认可该事', '案件类型': '2', '裁判日期': '2014-08-28', '案件名称': '襄阳市房屋租赁修缮公司与胡素娟、许春红一般买卖合同纠纷申请再审民事裁定书', '文书ID': 'FcKMwrcNA0EMw4BWUsOWwqlUw5x/JMK/GxYEw4HCiQBTwpLCj8O3w4LClEvCtgXCisKwdgtZe8OXKcK1w7FNVRfCjFDChk3CjsOpHsKHFzsqTcOhwq7ChQRaIFTCm8OZwoLDosK6w6ljb8Ozwqc8OlDCnxMgXynCi8KJw5fClzF5woEDEMOmw5TCgnBMSXDCnRPCrRvDu8OgAMOZR8ObwrRIw6ErFcKzw7/CqzhRacK3wpsdw47Dg2o5AsOhw4tkw5c7wqsf', '审判程序': '再审审查与审判监督', '案号': '(2014)民申字第227号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '本院认为,虽然案涉房屋尚未完成竣工验收备案,不具备《昆山市商品房购销合同》中约定的交付条件。但是,根据缪永红于购房当日与东方广场公司签订的《租赁及委托经营管理合同》的约定,缪永红已经将其所购买的房屋出租给东方广场公司经营使用,并在支付装修费用后将收房、装修事项', '案件类型': '2', '裁判日期': '2014-10-23', '案件名称': '缪永红 昆山红枫房地产有限公司 昆山东方云顶广场有限公司与中信信托有限责任公司其他合同纠纷二审民事判决书5', '文书ID': 'DcKOwrcRw4BADMODVlIOwqVeYcO/wpHDrMKOBcKAYxNww4B5w7sAc8KHT8Ojwr7Cq2PCqgfDnMOiwpU1RMKuwovDoS7DssKsw6I1wrTCt0AswoElERLDrcOrwpwsLlXCjMKfZ8OWYhXDrcKSHMKTwpo9w4HCiMKKw5/Ds3jCrsO/w5BAU8KefMO5w75kwpEgw6nDlWhddxtTwrLDjcKbGQjDu8K7w67Chhk2wrnCuwjDh1DCtMK+Ox4lcTgGw41ZCHMnw7JfPXYPw7sA', '审判程序': '二审', '案号': '(2014)民一终字第122号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '本院审查认为,(一)关于处理本案当事人争议的合同依据问题。双方签订的《1.47亿元施工合同》表明,华兴公司承包了整个“天成国贸中心”的土建及安装工程;双方签订的《天成国贸中心工程施工补充协议》(以下简称《补充协议》)表明华兴公司承包“天成国贸中心”整个土建及安', '案件类型': '2', '裁判日期': '2014-03-27', '案件名称': '天成润华集团有限公司与中国核工业华兴建设有限公司建设工程施工合同纠纷申请再审审查民事裁定书', '文书ID': 'DcKOw4kJAEEIw4BaUsOHw7PDqcOZf0nCu8K/QCDDhMKGw5LDoATDhHvCiMORwprDjcKQRsOCG8OgfsKrViM9dsOgdMKpLWQlc8KDbcKYAVvChcKWwrDDpmd8Djs/U3LDu8OEwrbCjMKyw7FowqguUi89wo9bKMONeGvDu8K3JmtXw7gWwrPCgcKAwpTCicOWI14+wrzCmMKdwpDCksKrCMKrOh1HfcKvwp3Cq8KaRBJ5VVlRw745wrdAw5Ycd8Osw4rCo1cOw68D', '审判程序': '再审', '案号': '(2013)民申字第1929号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '本院认为,执行异议之诉的关键是审查购房者享有的实体权利是否足以阻却执行措施。\n其一,“二轻大厦”系繁荣公司与二轻联社共同开发建设,繁荣公司依约可取得“二轻大厦”中49%的权益。而阜承公司因受让繁荣公司在“二轻大厦”项目中所享有的49%权益分得“二轻大厦”第6', '案件类型': '2', '裁判日期': '2014-11-14', '案件名称': '方希源、蔡福英等民间借贷纠纷、案外人执行异议之诉民事判决书', '文书ID': 'DcOORxHDgDAMADBKHsOxenrDssKHw5QSw5ApwoLCn8KuHUAKQ3Baw6HDhsKOcsKnwoPCn8K5wo3Dgwssw5FyL0rCucKgworDrGYePkrCrVIIw4J6wqzDhWLCqcKvw7gxw5nCu33Cky/DosK4wogNwpHDrMOWwpPCqilBDsOnJ8KXV0jCrlzDh1zDu0UVDsOgw5EGw7UkA8KnUMKjwoDCtTLCl8OfbMOpw54QwrDDvkdDHsKiwrZVw6LDtcK+dhYcE8OCQVFqwroP', '审判程序': '二审', '案号': '(2014)民一终字第174号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '综上,四海公司的上诉理由缺乏事实和法律依据,本院不予支持。原审判决认定事实清楚,适用法律正确,依法应予维持。本院依照《中华人民共和国民事诉讼法》第一百七十条第一款第(一)项之规定,判决如下', '案件类型': '2', '裁判日期': '2014-12-20', '案件名称': '中国信达资产管理股份有限公司黑龙江省分公司与哈尔滨四海数控科技股份有限公司、刘安丽金融借款合同纠纷二审民事判决书', '文书ID': 'FcKMw4sRRDEIw4NaCl/DgzEEw6jCv8KkfXvDs8OIGlHDucK+w6TClgXDo8OeUMKcUcO3M0zCr2HCmQjCqsKcXUotdsOOAmnChCoTwpoSw6RtVnrDix/DlsOdw6rCjsO4a8O5wqp2wrxdGEXClMOuUsO9w61gw7kaw6EHwpnDscKGTsO/VWvCiB1zEE9cwphEdMOcN1jCuiwwHiU3fCbDuMKgP8KkYsKUw51rw4QWw4dnw7bDu3RWw57Dg8Ozw6PCglfDncOBw7sD', '审判程序': '二审', '案号': '(2014)民二终字第251号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '本院认为,本案再审争议的焦点问题为:(一)郑少春与中医院之间法律关系的性质与效力;(二)郑少春应否将案涉土地退还给中医院,应否以及如何支付土地占用费。\n(一)关于郑少春与中医院之间法律关系的性质与效力问题。《中华人民共和国城镇国有土地使用权出让转让暂行条例》', '案件类型': '2', '裁判日期': '2014-11-15', '案件名称': '莆田市中医院与福建省莆田市闽中田野汽车贸易有限公司、莆田市志强汽车贸易有限公司建设用地使用权纠纷审判监督民事判决书', '文书ID': 'DcOMRwHDgEAIADBLw6zDscKEA8O8S2ojIHjDtsOQTCpUw43CkyfDsw7Co0/Co8KTw4w1woN0wr15ZMODFlYHwoTCjUXCpkteBhYIFcO7Iw/ClGHCmHhGDhTDjy1DDVFyw4HDgsO9wqTCiDbCjcOGwpjDnsKEwrB2OcKiw4vCk8KGw57Cs8KgKsOEbcOUwoLDjkcsMMK8DsKqwrJkW8OjNGfCh8KKcFDCsMKlw40pWsKLwrRoFV05w7rCj8KsFEzDgMKyHw==', '审判程序': '再审', '案号': '(2014)民提字第125号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '综上,腾远公司的再审申请不符合《中华人民共和国民事诉讼法》第二百条第六项规定的情形。本院依照《中华人民共和国民事诉讼法》第二百零四条第一款之规定,裁定如下', '案件类型': '2', '裁判日期': '2015-04-29', '案件名称': '许昌市腾远房地产开发有限公司、郑州市第二建筑工程有限责任公司与许昌市腾远房地产开发有限公司、郑州市第二建筑工程有限责任公司建设工程施工合同纠纷申请再审民事裁定书', '文书ID': 'DcOOwrERBDEIBMOBwpRALAtvAhLDucKHw7TDp8K2MTXCuXJLwrTDuynDhcK8w6UJYsKswqw/wo1reFdzcMOdDcO6aMKnwq/CthbCpcOyZMKbw7nDj8OAWGXCtDHDkCwtXXUQwoDDs27DrhTDpFppUibDscKww4RQwqsHwprDqcOewp8Ra8OIW8KNO8KuwqHDssOQGsOrwp7DvMO1wpbCvcKewq5XW8ODdcOBw5HCkMKnJsOCwrDCs8Kff8OJcyptEWx+wosyw7JbdsO1Hw==', '审判程序': '再审审查与审判监督', '案号': '(2015)民申字第739号', '法院名称': '最高人民法院'}] 232 | if len(list_json) > 1: 233 | runeval = list_json[0]['RunEval'] 234 | if runeval[0: 3] == "w63": 235 | print("经检测,此为脏数据,请更换IP后重试") 236 | return False 237 | docids = [] 238 | for item in list_json[1:]: 239 | docid = item['文书ID'] 240 | js = get_docid.call("GetJs", runeval) 241 | js_objs = js.split(";;") 242 | js1 = js_objs[0] + ';' 243 | js2 = re.findall(r"_\[_\]\[_\]\((.*?)\)\(\);", js_objs[1])[0] 244 | key = get_docid.call("EvalKey", js1, js2) 245 | key = re.findall(r"\"([0-9a-z]{32})\"", key)[0] 246 | docid = get_docid.call("DecryptDocID", key, docid) 247 | docids.append(docid) 248 | return docids 249 | else: 250 | return False 251 | 252 | def getContent(self, docid): 253 | url = "http://wenshu.court.gov.cn/CreateContentJS/CreateContentJS.aspx?DocID={}".format(docid) 254 | self.f80t_n = ctx1.call("getCookies", self.meta, self.f80t, self.ywtu) 255 | cookies = self.cookies 256 | cookies['wzwsvtime'] = str(int(time.time())) 257 | cookies['FSSBBIl1UgzbN7Nenable'] = "true" 258 | cookies['FSSBBIl1UgzbN7N80S'] = self.f80s 259 | cookies['FSSBBIl1UgzbN7N80T'] = self.f80t_n 260 | cookies['vjkl5'] = self.vjkl5 261 | headers = self.headers 262 | headers['Referer'] = self.url.format(parse.quote(self.conditions)) 263 | try: 264 | rsp = requests.get(url, headers=headers, cookies=cookies, proxies=proxies) 265 | except Exception as e: 266 | if self.debug: 267 | print(e) 268 | print("获取内容时网络请求出错") 269 | return False 270 | if rsp.status_code == 200 and "验证码" not in rsp.text: 271 | print(rsp.text) 272 | return True 273 | else: 274 | if self.debug: 275 | print("获取内容出错,code:{},若code为200,可能出现了验证码".format(rsp.status_code)) 276 | return False 277 | 278 | 279 | if __name__ == '__main__': 280 | # # 实例化并开启调试模式,会返回报错信息 281 | for i in range(10): 282 | 283 | spider = SpiderManager(debug=True) 284 | # 设置采集条件 285 | spider.setconditions("searchWord+2+AJLX++案件类型:民事案件") 286 | # 初始化 287 | init_status = spider.init() 288 | if init_status: 289 | print("初始化成功") 290 | status = spider.getvjkl5() 291 | if status: 292 | print("获取vjkl5成功") 293 | status = spider.getList(page=i) 294 | if status: 295 | print("获取列表页内容成功") 296 | print(spider.getListData()) 297 | docids = spider.getDocIds() 298 | if docids: 299 | for item in docids: 300 | spider.getContent(item) 301 | else: 302 | print("解密失败") 303 | else: 304 | print("获取列表页内容失败") 305 | 306 | else: 307 | # 自己写,重新获得getvjkl5 308 | pass 309 | 310 | else: 311 | print("初始化失败") 312 | # continue 313 | requests.get("http://proxy.abuyun.com/switch-ip", proxies=proxies) 314 | 315 | 316 | -------------------------------------------------------------------------------- /ywtu.js: -------------------------------------------------------------------------------- 1 | function _$go(_$EO) { 2 | function _$az() { 3 | var _$BF = _$h7[_$EO.charCodeAt(_$fq++)]; 4 | if (_$BF < 0) { 5 | return _$h7[_$EO.charCodeAt(_$fq++)] * 7396 + _$h7[_$EO.charCodeAt(_$fq++)] * 86 + _$h7[_$EO.charCodeAt(_$fq++)]; 6 | } else if (_$BF < 64) { 7 | return _$BF; 8 | } else if (_$BF <= 86) { 9 | return _$BF * 86 + _$h7[_$EO.charCodeAt(_$fq++)] - 5440; 10 | } 11 | } 12 | 13 | var _$pM = _$EO.length, _$fq = 0, _$EA, _$Cz = 0, _$h7 = _$z0()[5]; 14 | var _$Ea = _$az(); 15 | _$kI = _$Hi(_$kI); 16 | _$FM = _$Hi(_$FM); 17 | var _$zG = new Array(_$Ea); 18 | while (_$fq < _$pM) { 19 | _$EA = _$az(); 20 | _$zG[_$Cz++] = _$EO.substr(_$fq, _$EA); 21 | _$fq += _$EA; 22 | } 23 | _$Hc = function (_$BF) { 24 | var _$Cl = _$BF % 64; 25 | var _$Cs = _$BF - _$Cl; 26 | _$Cl = _$nM(_$Cl); 27 | _$Cl ^= _$kI; 28 | _$Cs += _$Cl; 29 | return _$zG[_$Cs]; 30 | }; 31 | } 32 | function _$nM(_$Cz) { 33 | var _$h7 = [0, 1, 3, 7, 0xf, 0x1f]; 34 | return (_$Cz >> _$FM) | ((_$Cz & _$h7[_$FM]) << (6 - _$FM)); 35 | } 36 | function _$Hi(_$Cz, _$h7) { 37 | _$Cz = parseInt(_$Cz); 38 | if (!isNaN(_$Cz)) return _$Cz; 39 | if (arguments.length > 1) return _$h7; 40 | return NaN; 41 | } 42 | 43 | function _$pZ(){ 44 | return "" 45 | } 46 | 47 | function _$xR() { 48 | return "qrcklmDoExthWJiHAp1sVYKU3RFMQw8IGfPO92bvLNj.7zXBaSnu0TC6gy_4Ze5d{}|~ !#$%()*+,-:=?@[]^".split(_$pZ()); 49 | } 50 | 51 | function _$zh(_$h7, _$Cz, _$fq, _$Ea) { 52 | for (; _$Cz < _$fq; _$Cz++) { 53 | _$h7[_$Cz] = _$Ea; 54 | } 55 | } 56 | 57 | function _$wV() { 58 | var _$fq = _$xR(); 59 | var _$Cz = []; 60 | for (var _$az = 0; _$az < 6; _$az++) { 61 | _$Cz[_$az] = []; 62 | } 63 | _$z0 = function () { 64 | return _$Cz; 65 | }; 66 | var _$pM = _$Cz[0], _$Ea = _$Cz[1], _$EA = _$Cz[2], _$EO = _$Cz[3], _$ht = _$Cz[4], _$h7 = _$Cz[5]; 67 | _$zh(_$h7, 0, 255, -1); 68 | for (_$az = 0; _$az < _$fq.length; _$az++) { 69 | var _$zG = _$fq[_$az].charCodeAt(0); 70 | _$pM[_$zG] = _$az << 2; 71 | _$Ea[_$zG] = _$az >> 4; 72 | _$EA[_$zG] = (_$az & 15) << 4; 73 | _$EO[_$zG] = _$az >> 2; 74 | _$ht[_$zG] = (_$az & 3) << 6; 75 | _$h7[_$zG] = _$az; 76 | } 77 | } 78 | 79 | function _$Em() { 80 | return _$BI._$b0(); 81 | } 82 | function _$vz() { 83 | return _$BI._$ap(); 84 | } 85 | function _$qy(meta) { 86 | function _$Ea() { 87 | var _$zG = _$Cz.charCodeAt(_$pM); 88 | if (_$zG >= 40) { 89 | _$pM++; 90 | return _$zG - 40; 91 | } 92 | var _$EA = 39 - _$zG; 93 | _$zG = 0; 94 | for (var _$az = 0; _$az < _$EA; _$az++) { 95 | _$zG *= 87; 96 | _$zG += _$Cz.charCodeAt(_$pM + 1 + _$az) - 40; 97 | } 98 | _$pM += _$EA + 1; 99 | return _$zG + 87; 100 | } 101 | 102 | function _$EO() { 103 | var _$EA = _$Ea(); 104 | var _$az = _$Cz.substr(_$pM, _$EA); 105 | _$pM += _$EA; 106 | return _$az; 107 | } 108 | 109 | function _$h7() { 110 | return _$Cz.substr(_$pM); 111 | } 112 | 113 | var _$Cz = meta, _$pM = 0, _$fq = {}; 114 | _$fq._$b0 = _$EO; 115 | _$fq._$ap = _$h7; 116 | return _$fq; 117 | } 118 | var _$Hc = undefined; 119 | // _$go(meta); 120 | var _$BI = undefined; 121 | var _$z0 = undefined; 122 | function _$kw(){ 123 | return "`" 124 | } 125 | function _$uV() { 126 | var _$h7 = _$DY(_$Em()).split(_$kw()); 127 | for (var _$Cz = 0; _$Cz < _$h7.length; _$Cz++) _$h7[_$Cz] = _$Hi(_$h7[_$Cz]); 128 | return _$h7; 129 | } 130 | 131 | _$yS = _$Aw("qzs|u`v"); 132 | 133 | function _$fU(_$h7) { 134 | return _$h7[_$yS]; 135 | } 136 | 137 | function _$Aw(_$fq) { 138 | var _$h7, _$EO = _$fq.length, _$EA = new Array(_$EO - 1); 139 | var _$Cz = _$fq.charCodeAt(0) - 93; 140 | for (var _$pM = 0, _$Ea = 1; _$Ea < _$EO; ++_$Ea) { 141 | _$h7 = _$fq.charCodeAt(_$Ea); 142 | if (_$h7 >= 40 && _$h7 < 92) { 143 | _$h7 += _$Cz; 144 | if (_$h7 >= 92) _$h7 = _$h7 - 52; 145 | } else if (_$h7 >= 93 && _$h7 < 127) { 146 | _$h7 += _$Cz; 147 | if (_$h7 >= 127) _$h7 = _$h7 - 34; 148 | } 149 | _$EA[_$pM++] = _$h7; 150 | } 151 | return String.fromCharCode.apply(null, _$EA); 152 | } 153 | 154 | function _$DY(_$fq) { 155 | var _$h7, _$EO = _$fU(_$fq), _$EA = new Array(_$EO - 1); 156 | var _$Cz = _$fq.charCodeAt(0) - 40; 157 | for (var _$pM = 0, _$Ea = 1; _$Ea < _$EO; ++_$Ea) { 158 | _$h7 = _$fq.charCodeAt(_$Ea); 159 | if (_$h7 >= 40 && _$h7 < 127) { 160 | _$h7 += _$Cz; 161 | if (_$h7 >= 127) _$h7 = _$h7 - 87; 162 | } 163 | _$EA[_$pM++] = _$h7; 164 | } 165 | return String.fromCharCode.apply(null, _$EA); 166 | } 167 | 168 | function getc(meta){ 169 | _$BI = _$qy(meta); 170 | for(var i = 0; i < 11; i++){ 171 | var _$Ea = _$uV(); 172 | } 173 | _$kI = _$Ea[1]; 174 | _$D1 = _$Ea[0]; 175 | _$FM = _$Ea[2]; 176 | _$Em(); 177 | var r = _$vz(); 178 | _$wV(); 179 | _$go(r); 180 | return _$Hc(26) 181 | } 182 | 183 | /** 184 | * 185 | * developer: sml2h3 186 | * time: 2019.1.20 187 | * GitHub:https://github.com/sml2h3 188 | * QQ group:119794042 189 | */ 190 | 191 | --------------------------------------------------------------------------------