C# 终本案件、综合执行人、裁判文书爬虫
终本案件:http://zxgk.court.gov.cn/zhongben/new_index.html
综合执行人:http://zxgk.court.gov.cn/zhixing/new_index.html
裁判文书:http://wenshu.court.gov.cn
终本案件和执行人爬取还是挺简单的,没有涉及到加密,验证码也可以直接识别过掉,主要是网站不是很稳定,经常出现502,504,500错误,涉及到一些失败重连机制。IP限制我们用的是拨号来解决的,客户对于速度的要求不是很
高,考虑到客户预算有限没有上优质HTTP代理。
本来开始是用的.net4.5的httpclient,但是在实际的抓取过程当中发现这个类库有BUG,释放SOCKET的时间需要很长。后改用从4.0开始就一直在使用的RestSharp来做访问,问题得到解决,网页解析类库采用的是anglesharp,解
析速度还是不错的。由于网站经常出现访问错误,已经有些数据查询会直接让网站报500,所以采用了Polly来做超时和重试。
外包项目,直接做的类库给他们调用没有写界面,前两个没什么好说的,主要来说说文书爬虫。
文书获取列表页的时候需要提交三个参数:GUID\Code\VL5X ,GUID是随机数生成的,我们可以直接使用
Guid.NewGuid().ToString("D");
生成GUID就可以了,Code是访问网页返回的,带上GUID访问返回明文的Code,访问网址:/ValiCode/GetCode
private string GetCode(RestClient client) { cc: PageId = Guid.NewGuid().ToString("D"); var rsp = "/ValiCode/GetCode".PostAsResponse(client, "guid=" + PageId); if (!ProcessResponse(rsp, client)) { goto cc; } return rsp.Content; }
ProcessResponse是做的访问结果判断是否需要过验证码或者拨号
private bool ProcessResponse(IRestResponse rsp, RestClient client) { if (rsp.StatusCode == HttpStatusCode.BadGateway || rsp.StatusCode == HttpStatusCode.GatewayTimeout) { Reconnection(DialerInfo); return false; } if (rsp.Content.Contains("网站当前访问量较大,请输入验证码后继续访问")) { Reconnection(DialerInfo); var buffer = client.Execute(new RestRequest(string.Format("waf_captcha/?{0}", DateTime.Now.Ticks))).RawBytes; var captcha = Helpers.ProcessImage(buffer, buffer.Length); rsp.Content = client.Execute(new RestRequest("waf_verify.htm?captcha=" + captcha)).Content; return false; } foreach (var s in ProhibitKey) { if (rsp.Content.Contains(s)) { Reconnection(DialerInfo); return false; } } return true; }
目前发现的几个关键字:
//被封IP时候出现的关键词 public static string[] ProhibitKey = new[] { "网站当前访问量较大,请输入验证码后继续访问", "请开启JavaScript并刷新该页", "源站出现问题,暂时无法访问", };
VL5X是根据Cookie来计算的值,Cookie是带上guid\code访问得到的:
private string GetCookie(string name, string code, RestClient client) { cc: var rsp = string.Format("/list/list/?sorttype=1&number={0}&guid={1}&conditions=searchWord+QWJS+++{2}", code, PageId, "全文检索:" + name) .GetAsResponse(client); if (!ProcessResponse(rsp, client)) { goto cc; } var cookie = rsp.Cookies.FirstOrDefault(x => x.Name == "vjkl5"); if (cookie == null) { Reconnection(DialerInfo); goto cc; } return cookie.Value; }
拿到cookie后,根据js加密出vl5x的值,加密的JS:(JS我改写了,调用getValue这个方法,传入cookie就可以返回vl5x的值)
1 function strToLong(str) { 2 var long = 0; 3 for (var i = 0; i < str.length; i++) { 4 long += (str.charCodeAt(i) << (i % 16)) 5 } 6 return long 7 } 8 function strToLongEn(str) { 9 var long = 0; 10 for (var i = 0; i < str.length; i++) { 11 long += (str.charCodeAt(i) << (i % 16)) + i 12 } 13 return long 14 } 15 function strToLongEn2(str, step) { 16 var long = 0; 17 for (var i = 0; i < str.length; i++) { 18 long += (str.charCodeAt(i) << (i % 16)) + (i * step) 19 } 20 return long 21 } 22 function strToLongEn3(str, step) { 23 var long = 0; 24 for (var i = 0; i < str.length; i++) { 25 long += (str.charCodeAt(i) << (i % 16)) + (i + step - str.charCodeAt(i)) 26 } 27 return long 28 } 29 function makeKey_0(str) { 30 var str = str.substr(5, 5 * 5) + str.substr((5 + 1) * (5 + 1), 3); 31 var a = str.substr(5) + str.substr( - 4); 32 var b = str.substr(4) + a.substr( - 6); 33 return hex_md5(str).substr(4, 24) 34 } 35 function makeKey_1(str) { 36 var str = str.substr(5, 5 * 5) + "5" + str.substr(1, 2) + "1" + str.substr((5 + 1) * (5 + 1), 3); 37 var a = str.substr(5) + str.substr(4); 38 var b = str.substr(12) + a.substr( - 6); 39 var c = str.substr(4) + a.substr(6); 40 return hex_md5(c).substr(4, 24) 41 } 42 function makeKey_2(str) { 43 var str = str.substr(5, 5 * 5) + "15" + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3); 44 var a = strToLong(str.substr(5)) + str.substr(4); 45 var b = strToLong(str.substr(5)) + str.substr(4); 46 var c = str.substr(4) + b.substr(5); 47 return hex_md5(c).substr(1, 24) 48 } 49 function makeKey_3(str) { 50 var str = str.substr(5, 5 * 5) + "15" + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3); 51 var a = strToLongEn(str.substr(5)) + str.substr(4); 52 var b = str.substr(4) + a.substr(5); 53 var c = strToLong(str.substr(5)) + str.substr(4); 54 return hex_md5(b).substr(3, 24) 55 } 56 function makeKey_4(str) { 57 var str = str.substr(5, 5 * 5) + "2" + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3); 58 var long = 0; 59 for (var i = 0; i < str.substr(1).length; i++) { 60 long += (str.charCodeAt(i) << (i % 16)) 61 } 62 var aa = long + str.substr(4); 63 var long = 0; 64 var a = str.substr(5); 65 for (var i = 0; i < a.length; i++) { 66 long += (a.charCodeAt(i) << (i % 16)) + i 67 } 68 a = long + "" + str.substr(4); 69 var b = hex_md5(str.substr(1)) + strToLong(a.substr(5)); 70 return hex_md5(b).substr(3, 24) 71 } 72 function makeKey_5(str) { 73 var base = new Base64(); 74 var str = base.encode(str.substr(5, 5 * 5) + str.substr(1, 2) + "1") + str.substr((5 + 1) * (5 + 1), 3); 75 var a = strToLongEn(str.substr(4, 10)) + str.substr( - 4); 76 var b = hex_md5(str.substr(4)) + a.substr(2); 77 var a = str.substr(3); 78 var c = strToLong(str.substr(5)) + str.substr(4); 79 var aa = long + str.substr(4); 80 var long = 0; 81 for (var i = 0; i < a.length; i++) { 82 long += (a.charCodeAt(i) << (i % 12)) + i 83 } 84 a = long + "" + str.substr(4); 85 return hex_md5(str).substr(4, 24) 86 } 87 function makeKey_6(str) { 88 var base = new Base64(); 89 var str = str.substr(5, 5 * 5) + str.substr((5 + 1) * (5 + 1), 3); 90 var a = base.encode(str.substr(4, 10)) + str.substr(2); 91 var b = str.substr(6) + a.substr(2); 92 var c = strToLong(str.substr(5)) + str.substr(4); 93 var aa = long + str.substr(4); 94 var long = 0; 95 var a = str.substr(5); 96 for (var i = 0; i < a.length; i++) { 97 long += (a.charCodeAt(i) << (i % 16)) + i 98 } 99 a = long + "" + str.substr(4); 100 return hex_md5(b).substr(2, 24) 101 } 102 function makeKey_7(str) { 103 var base = new Base64(); 104 var str = base.encode(str.substr(5, 5 * 4) + "55" + str.substr(1, 2)) + str.substr((5 + 1) * (5 + 1), 3); 105 var long = 0; 106 for (var i = 0; i < str.substr(1).length; i++) { 107 long += (str.charCodeAt(i) << (i % 16 + 5)) + 3 + 5 108 } 109 var aa = long + str.substr(4); 110 var long = 0; 111 var a = str.substr(5); 112 for (var i = 0; i < a.length; i++) { 113 long += (a.charCodeAt(i) << (i % 16)) 114 } 115 a = long + "" + str.substr(4); 116 var b = hex_md5(str.substr(1)) + strToLong(a.substr(5)); 117 return hex_md5(b).substr(3, 24) 118 } 119 function makeKey_8(str) { 120 var base = new Base64(); 121 var str = base.encode(str.substr(5, 5 * 5 - 1) + "5" + "-" + "5") + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3); 122 var long = 0; 123 for (var i = 0; i < str.substr(1).length; i++) { 124 long += (str.charCodeAt(i) << (i % 16)) 125 } 126 var aa = long + str.substr(4); 127 var long = 0; 128 var a = str.substr(5); 129 for (var i = 0; i < a.length; i++) { 130 long += (a.charCodeAt(i) << (i % 16)) 131 } 132 a = long + "" + str.substr(4); 133 var b = hex_md5(str.substr(1)) + strToLongEn(a.substr(5)); 134 return hex_md5(b).substr(4, 24) 135 } 136 function makeKey_9(str) { 137 var str = str.substr(5, 5 * 5) + "5" + str.substr(1, 2) + "1" + str.substr((5 + 1) * (5 + 1), 3); 138 var a = str.substr(5) + str.substr(4); 139 var b = str.substr(12) + a.substr( - 6); 140 var c = hex_sha1(str.substr(4)) + a.substr(6); 141 return hex_md5(c).substr(4, 24) 142 } 143 function makeKey_10(str) { 144 var base = new Base64(); 145 var str = base.encode(str.substr(5, 5 * 5 - 1) + "5") + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3); 146 var long = 0; 147 for (var i = 0; i < str.substr(1).length; i++) { 148 long += (str.charCodeAt(i) << (i % 16)) 149 } 150 var aa = long + str.substr(4); 151 var long = 0; 152 var a = str.substr(5); 153 for (var i = 0; i < a.length; i++) { 154 long += (a.charCodeAt(i) << (i % 16)) 155 } 156 a = long + "" + str.substr(4); 157 var b = hex_md5(str.substr(1)) + hex_sha1(a.substr(5)); 158 return hex_md5(b).substr(4, 24) 159 } 160 function makeKey_11(str) { 161 var base = new Base64(); 162 var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3); 163 var long = 0; 164 for (var i = 0; i < str.substr(1).length; i++) { 165 long += (str.charCodeAt(i) << (i % 16)) 166 } 167 var aa = long + str.substr(4); 168 var long = 0; 169 var a = str.substr(5); 170 for (var i = 0; i < a.length; i++) { 171 long += (a.charCodeAt(i) << (i % 16)) 172 } 173 a = long + "" + str.substr(2); 174 var b = str.substr(1) + hex_sha1(a.substr(5)); 175 return hex_md5(b).substr(2, 24) 176 } 177 function makeKey_12(str) { 178 var base = new Base64(); 179 var str = str.substr(5, 5 * 5 - 1) + str.substr((5 + 1) * (5 + 1), 3) + "2" + str.substr(1, 2); 180 var long = 0; 181 for (var i = 0; i < str.substr(1).length; i++) { 182 long += (str.charCodeAt(i) << (i % 16)) 183 } 184 var aa = long + str.substr(4); 185 var long = 0; 186 var a = str.substr(5); 187 for (var i = 0; i < a.length; i++) { 188 long += (a.charCodeAt(i) << (i % 16)) 189 } 190 a = long + "" + str.substr(2); 191 var b = str.substr(1) + hex_sha1(str.substr(5)); 192 return hex_md5(b).substr(1, 24) 193 } 194 function makeKey_13(str) { 195 var base = new Base64(); 196 var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2); 197 var long = 0; 198 for (var i = 0; i < str.substr(1).length; i++) { 199 long += (str.charCodeAt(i) << (i % 16)) 200 } 201 var aa = long + str.substr(4); 202 var long = 0; 203 var a = str.substr(5); 204 for (var i = 0; i < a.length; i++) { 205 long += (a.charCodeAt(i) << (i % 16)) 206 } 207 a = long + "" + str.substr(2); 208 var b = base.encode(str.substr(1) + hex_sha1(str.substr(5))); 209 return hex_md5(b).substr(1, 24) 210 } 211 function makeKey_14(str) { 212 var base = new Base64(); 213 var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2); 214 var long = 0; 215 for (var i = 0; i < str.substr(1).length; i++) { 216 long += (str.charCodeAt(i) << (i % 16)) 217 } 218 var aa = long + str.substr(4); 219 var long = 0; 220 var a = str.substr(5); 221 for (var i = 0; i < a.length; i++) { 222 long += (a.charCodeAt(i) << (i % 16)) 223 } 224 a = long + "" + str.substr(2); 225 var b = base.encode(str.substr(1) + str.substr(5) + str.substr(1, 3)); 226 return hex_sha1(b).substr(1, 24) 227 } 228 function makeKey_15(str) { 229 var base = new Base64(); 230 var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2); 231 var long = 0; 232 for (var i = 0; i < str.substr(1).length; i++) { 233 long += (str.charCodeAt(i) << (i % 16)) 234 } 235 var aa = long + str.substr(4); 236 var long = 0; 237 var a = str.substr(5); 238 for (var i = 0; i < a.length; i++) { 239 long += (a.charCodeAt(i) << (i % 16)) 240 } 241 a = long + "" + str.substr(2); 242 var b = base.encode(a.substr(1) + str.substr(5) + str.substr(2, 3)); 243 return hex_sha1(b).substr(1, 24) 244 } 245 function makeKey_16(str) { 246 var base = new Base64(); 247 var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2) + "-" + "5"; 248 var long = 0; 249 for (var i = 0; i < str.substr(1).length; i++) { 250 long += (str.charCodeAt(i) << (i % 11)) 251 } 252 var aa = long + str.substr(4); 253 var long = 0; 254 var a = str.substr(5); 255 for (var i = 0; i < a.length; i++) { 256 long += (a.charCodeAt(i) << (i % 16)) + i 257 } 258 a = long + "" + str.substr(2); 259 var b = base.encode(a.substr(1)) + strToLongEn2(str.substr(5), 5) + str.substr(2, 3); 260 return hex_md5(b).substr(2, 24) 261 } 262 function makeKey_17(str) { 263 var base = new Base64(); 264 var str = str.substr(5, 5 * 5 - 1) + "7" + str.substr(1, 2) + "-" + "5"; 265 var long = 0; 266 for (var i = 0; i < str.substr(1).length; i++) { 267 long += (str.charCodeAt(i) << (i % 11)) 268 } 269 var aa = long + str.substr(4); 270 var long = 0; 271 var a = str.substr(5); 272 for (var i = 0; i < a.length; i++) { 273 long += (a.charCodeAt(i) << (i % 16)) + i 274 } 275 a = long + "" + str.substr(2); 276 var b = base.encode(a.substr(1)) + strToLongEn2(str.substr(5), 5 + 1) + str.substr(2 + 5, 3); 277 return hex_md5(b).substr(0, 24) 278 } 279 function makeKey_18(str) { 280 var base = new Base64(); 281 var str = str.substr(5, 5 * 5 - 1) + "7" + str.substr(1, 2) + "5" + str.substr(2 + 5, 3); 282 var long = 0; 283 for (var i = 0; i < str.substr(1).length; i++) { 284 long += (str.charCodeAt(i) << (i % 11)) 285 } 286 var aa = long + str.substr(4); 287 var long = 0; 288 var a = str.substr(5); 289 for (var i = 0; i < a.length; i++) { 290 long += (a.charCodeAt(i) << (i % 16)) + i 291 } 292 a = long + "" + str.substr(2); 293 var b = a.substr(1) + strToLongEn2(str.substr(5), 5 + 1) + str.substr(2 + 5, 3); 294 return hex_md5(b).substr(0, 24) 295 } 296 function makeKey_19(str) { 297 var base = new Base64(); 298 var str = str.substr(5, 5 * 5 - 1) + "7" + str.substr(5, 2) + "5" + str.substr(2 + 5, 3); 299 var long = 0; 300 for (var i = 0; i < str.substr(1).length; i++) { 301 long += (str.charCodeAt(i) << (i % 11)) 302 } 303 var aa = long + str.substr(4); 304 var long = 0; 305 var a = str.substr(5); 306 for (var i = 0; i < a.length; i++) { 307 long += (a.charCodeAt(i) << (i % 16)) + i 308 } 309 a = long + "" + str.substr(2); 310 var b = a.substr(1) + strToLongEn3(str.substr(5), 5 - 1) + str.substr(2 + 5, 3); 311 return hex_md5(b).substr(0, 24) 312 } 313 function makeKey_20(str) { 314 return hex_md5(makeKey_10(str) + makeKey_5(str)).substr(1, 24) 315 } 316 function makeKey_21(str) { 317 return hex_md5(makeKey_11(str) + makeKey_3(str)).substr(2, 24) 318 } 319 function makeKey_22(str) { 320 return hex_md5(makeKey_14(str) + makeKey_19(str)).substr(3, 24) 321 } 322 function makeKey_23(str) { 323 return hex_md5(makeKey_15(str) + makeKey_0(str)).substr(4, 24) 324 } 325 function makeKey_24(str) { 326 return hex_md5(makeKey_16(str) + makeKey_1(str)).substr(1, 24) 327 } 328 function makeKey_25(str) { 329 return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(2, 24) 330 } 331 function makeKey_26(str) { 332 return hex_md5(makeKey_10(str) + makeKey_5(str)).substr(3, 24) 333 } 334 function makeKey_27(str) { 335 return hex_md5(makeKey_17(str) + makeKey_3(str)).substr(4, 24) 336 } 337 function makeKey_28(str) { 338 return hex_md5(makeKey_18(str) + makeKey_7(str)).substr(1, 24) 339 } 340 function makeKey_29(str) { 341 return hex_md5(makeKey_19(str) + makeKey_3(str)).substr(2, 24) 342 } 343 function makeKey_30(str) { 344 return hex_md5(makeKey_0(str) + makeKey_7(str)).substr(3, 24) 345 } 346 function makeKey_31(str) { 347 return hex_md5(makeKey_1(str) + makeKey_8(str)).substr(4, 24) 348 } 349 function makeKey_32(str) { 350 return hex_md5(makeKey_4(str) + makeKey_14(str)).substr(3, 24) 351 } 352 function makeKey_33(str) { 353 return hex_md5(makeKey_5(str) + makeKey_15(str)).substr(4, 24) 354 } 355 function makeKey_34(str) { 356 return hex_md5(makeKey_3(str) + makeKey_16(str)).substr(1, 24) 357 } 358 function makeKey_35(str) { 359 return hex_md5(makeKey_7(str) + makeKey_9(str)).substr(2, 24) 360 } 361 function makeKey_36(str) { 362 return hex_md5(makeKey_8(str) + makeKey_10(str)).substr(3, 24) 363 } 364 function makeKey_37(str) { 365 return hex_md5(makeKey_6(str) + makeKey_17(str)).substr(1, 24) 366 } 367 function makeKey_38(str) { 368 return hex_md5(makeKey_12(str) + makeKey_18(str)).substr(2, 24) 369 } 370 function makeKey_39(str) { 371 return hex_md5(makeKey_14(str) + makeKey_19(str)).substr(3, 24) 372 } 373 function makeKey_40(str) { 374 return hex_md5(makeKey_15(str) + makeKey_0(str)).substr(4, 24) 375 } 376 function makeKey_41(str) { 377 return hex_md5(makeKey_16(str) + makeKey_1(str)).substr(3, 24) 378 } 379 function makeKey_42(str) { 380 return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(4, 24) 381 } 382 function makeKey_43(str) { 383 return hex_md5(makeKey_10(str) + makeKey_5(str)).substr(1, 24) 384 } 385 function makeKey_44(str) { 386 return hex_md5(makeKey_17(str) + makeKey_3(str)).substr(2, 24) 387 } 388 function makeKey_45(str) { 389 return hex_md5(makeKey_18(str) + makeKey_7(str)).substr(3, 24) 390 } 391 function makeKey_46(str) { 392 return hex_md5(makeKey_19(str) + makeKey_17(str)).substr(4, 24) 393 } 394 function makeKey_47(str) { 395 return hex_md5(makeKey_0(str) + makeKey_18(str)).substr(1, 24) 396 } 397 function makeKey_48(str) { 398 return hex_md5(makeKey_1(str) + makeKey_19(str)).substr(2, 24) 399 } 400 function makeKey_49(str) { 401 return hex_md5(makeKey_4(str) + makeKey_0(str)).substr(3, 24) 402 } 403 function makeKey_50(str) { 404 return hex_md5(makeKey_5(str) + makeKey_1(str)).substr(4, 24) 405 } 406 function makeKey_51(str) { 407 return hex_md5(makeKey_3(str) + makeKey_4(str)).substr(1, 24) 408 } 409 function makeKey_52(str) { 410 return hex_md5(makeKey_7(str) + makeKey_14(str)).substr(2, 24) 411 } 412 function makeKey_53(str) { 413 return hex_md5(makeKey_12(str) + makeKey_15(str)).substr(3, 24) 414 } 415 function makeKey_54(str) { 416 return hex_md5(makeKey_14(str) + makeKey_16(str)).substr(4, 24) 417 } 418 function makeKey_55(str) { 419 return hex_md5(makeKey_15(str) + makeKey_9(str)).substr(3, 24) 420 } 421 function makeKey_56(str) { 422 return hex_md5(makeKey_16(str) + makeKey_10(str)).substr(4, 24) 423 } 424 function makeKey_57(str) { 425 return hex_md5(makeKey_9(str) + makeKey_17(str)).substr(1, 24) 426 } 427 function makeKey_58(str) { 428 return hex_md5(makeKey_10(str) + makeKey_18(str)).substr(2, 24) 429 } 430 function makeKey_59(str) { 431 return hex_md5(makeKey_17(str) + makeKey_19(str)).substr(3, 24) 432 } 433 function makeKey_60(str) { 434 return hex_md5(makeKey_18(str) + makeKey_0(str)).substr(1, 24) 435 } 436 function makeKey_61(str) { 437 return hex_md5(makeKey_19(str) + makeKey_1(str)).substr(2, 24) 438 } 439 function makeKey_62(str) { 440 return hex_md5(makeKey_0(str) + makeKey_4(str)).substr(3, 24) 441 } 442 function makeKey_63(str) { 443 return hex_md5(makeKey_1(str) + makeKey_19(str)).substr(4, 24) 444 } 445 function makeKey_64(str) { 446 return hex_md5(makeKey_4(str) + makeKey_0(str)).substr(3, 24) 447 } 448 function makeKey_65(str) { 449 return hex_md5(makeKey_14(str) + makeKey_1(str)).substr(1, 24) 450 } 451 function makeKey_66(str) { 452 return hex_md5(makeKey_15(str) + makeKey_4(str)).substr(2, 24) 453 } 454 function makeKey_67(str) { 455 return hex_md5(makeKey_16(str) + makeKey_5(str)).substr(3, 24) 456 } 457 function makeKey_68(str) { 458 return hex_md5(makeKey_9(str) + makeKey_3(str)).substr(4, 24) 459 } 460 function makeKey_69(str) { 461 return hex_md5(makeKey_10(str) + makeKey_7(str)).substr(1, 24) 462 } 463 function makeKey_70(str) { 464 return hex_md5(makeKey_17(str) + makeKey_0(str)).substr(2, 24) 465 } 466 function makeKey_71(str) { 467 return hex_md5(makeKey_18(str) + makeKey_1(str)).substr(3, 24) 468 } 469 function makeKey_72(str) { 470 return hex_md5(makeKey_19(str) + makeKey_4(str)).substr(4, 24) 471 } 472 function makeKey_73(str) { 473 return hex_md5(makeKey_0(str) + makeKey_17(str)).substr(1, 24) 474 } 475 function makeKey_74(str) { 476 return hex_md5(makeKey_1(str) + makeKey_18(str)).substr(2, 24) 477 } 478 function makeKey_75(str) { 479 return hex_md5(makeKey_14(str) + makeKey_19(str)).substr(3, 24) 480 } 481 function makeKey_76(str) { 482 return hex_md5(makeKey_15(str) + makeKey_0(str)).substr(4, 24) 483 } 484 function makeKey_77(str) { 485 return hex_md5(makeKey_16(str) + makeKey_1(str)).substr(3, 24) 486 } 487 function makeKey_78(str) { 488 return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(4, 24) 489 } 490 function makeKey_79(str) { 491 return hex_md5(makeKey_10(str) + makeKey_9(str)).substr(1, 24) 492 } 493 function makeKey_80(str) { 494 return hex_md5(makeKey_17(str) + makeKey_10(str)).substr(2, 24) 495 } 496 function makeKey_81(str) { 497 return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(3, 24) 498 } 499 function makeKey_82(str) { 500 return hex_md5(makeKey_14(str) + makeKey_18(str)).substr(1, 24) 501 } 502 function makeKey_83(str) { 503 return hex_md5(makeKey_15(str) + makeKey_19(str)).substr(4, 24) 504 } 505 function makeKey_84(str) { 506 return hex_md5(makeKey_16(str) + makeKey_0(str)).substr(1, 24) 507 } 508 function makeKey_85(str) { 509 return hex_md5(makeKey_9(str) + makeKey_1(str)).substr(2, 24) 510 } 511 function makeKey_86(str) { 512 return hex_md5(makeKey_10(str) + makeKey_4(str)).substr(3, 24) 513 } 514 function makeKey_87(str) { 515 return hex_md5(makeKey_14(str) + makeKey_14(str)).substr(4, 24) 516 } 517 function makeKey_88(str) { 518 return hex_md5(makeKey_15(str) + makeKey_15(str)).substr(1, 24) 519 } 520 function makeKey_89(str) { 521 return hex_md5(makeKey_16(str) + makeKey_16(str)).substr(2, 24) 522 } 523 function makeKey_90(str) { 524 return hex_md5(makeKey_9(str) + makeKey_9(str)).substr(3, 24) 525 } 526 function makeKey_91(str) { 527 return hex_md5(makeKey_10(str) + makeKey_10(str)).substr(4, 24) 528 } 529 function makeKey_92(str) { 530 return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(3, 24) 531 } 532 function makeKey_93(str) { 533 return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(4, 24) 534 } 535 function makeKey_94(str) { 536 return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(1, 24) 537 } 538 function makeKey_95(str) { 539 return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(2, 24) 540 } 541 function makeKey_96(str) { 542 return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(3, 24) 543 } 544 function makeKey_97(str) { 545 return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(4, 24) 546 } 547 function makeKey_98(str) { 548 return hex_md5(makeKey_5(str) + makeKey_5(str)).substr(3, 24) 549 } 550 function makeKey_99(str) { 551 return hex_md5(makeKey_3(str) + makeKey_3(str)).substr(4, 24) 552 } 553 function makeKey_100(str) { 554 return hex_md5(makeKey_7(str) + makeKey_3(str)).substr(1, 24) 555 } 556 function makeKey_101(str) { 557 return hex_md5(makeKey_10(str) + makeKey_7(str)).substr(2, 24) 558 } 559 function makeKey_102(str) { 560 return hex_md5(makeKey_17(str) + makeKey_18(str)).substr(1, 24) 561 } 562 function makeKey_103(str) { 563 return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(2, 24) 564 } 565 function makeKey_104(str) { 566 return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(3, 24) 567 } 568 function makeKey_105(str) { 569 return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(4, 24) 570 } 571 function makeKey_106(str) { 572 return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(1, 24) 573 } 574 function makeKey_107(str) { 575 return hex_md5(makeKey_14(str) + makeKey_14(str)).substr(2, 24) 576 } 577 function makeKey_108(str) { 578 return hex_md5(makeKey_15(str) + makeKey_15(str)).substr(3, 24) 579 } 580 function makeKey_109(str) { 581 return hex_md5(makeKey_16(str) + makeKey_16(str)).substr(4, 24) 582 } 583 function makeKey_110(str) { 584 return hex_md5(makeKey_9(str) + makeKey_9(str)).substr(1, 24) 585 } 586 function makeKey_111(str) { 587 return hex_md5(makeKey_10(str) + makeKey_10(str)).substr(2, 24) 588 } 589 function makeKey_112(str) { 590 return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(3, 24) 591 } 592 function makeKey_113(str) { 593 return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(4, 24) 594 } 595 function makeKey_114(str) { 596 return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(3, 24) 597 } 598 function makeKey_115(str) { 599 return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(4, 24) 600 } 601 function makeKey_116(str) { 602 return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(1, 24) 603 } 604 function makeKey_117(str) { 605 return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(2, 24) 606 } 607 function makeKey_118(str) { 608 return hex_md5(makeKey_5(str) + makeKey_15(str)).substr(3, 24) 609 } 610 function makeKey_119(str) { 611 return hex_md5(makeKey_3(str) + makeKey_16(str)).substr(1, 24) 612 } 613 function makeKey_120(str) { 614 return hex_md5(makeKey_19(str) + makeKey_9(str)).substr(1, 24) 615 } 616 function makeKey_121(str) { 617 return hex_md5(makeKey_0(str) + makeKey_10(str)).substr(2, 24) 618 } 619 function makeKey_122(str) { 620 return hex_md5(makeKey_1(str) + makeKey_17(str)).substr(3, 24) 621 } 622 function makeKey_123(str) { 623 return hex_md5(makeKey_4(str) + makeKey_18(str)).substr(4, 24) 624 } 625 function makeKey_124(str) { 626 return hex_md5(makeKey_5(str) + makeKey_19(str)).substr(1, 24) 627 } 628 function makeKey_125(str) { 629 return hex_md5(makeKey_3(str) + makeKey_0(str)).substr(2, 24) 630 } 631 function makeKey_126(str) { 632 return hex_md5(makeKey_7(str) + makeKey_1(str)).substr(3, 24) 633 } 634 function makeKey_127(str) { 635 return hex_md5(makeKey_3(str) + makeKey_4(str)).substr(4, 24) 636 } 637 function makeKey_128(str) { 638 return hex_md5(makeKey_7(str) + makeKey_5(str)).substr(1, 24) 639 } 640 function makeKey_129(str) { 641 return hex_md5(makeKey_8(str) + makeKey_3(str)).substr(2, 24) 642 } 643 function makeKey_130(str) { 644 return hex_md5(makeKey_14(str) + makeKey_7(str)).substr(3, 24) 645 } 646 function makeKey_131(str) { 647 return hex_md5(makeKey_15(str) + makeKey_10(str)).substr(4, 24) 648 } 649 function makeKey_132(str) { 650 return hex_md5(makeKey_16(str) + makeKey_17(str)).substr(3, 24) 651 } 652 function makeKey_133(str) { 653 return hex_md5(makeKey_9(str) + makeKey_18(str)).substr(4, 24) 654 } 655 function makeKey_134(str) { 656 return hex_md5(makeKey_10(str) + makeKey_19(str)).substr(1, 24) 657 } 658 function makeKey_135(str) { 659 return hex_md5(makeKey_17(str) + makeKey_0(str)).substr(2, 24) 660 } 661 function makeKey_136(str) { 662 return hex_md5(makeKey_18(str) + makeKey_1(str)).substr(1, 24) 663 } 664 function makeKey_137(str) { 665 return hex_md5(makeKey_19(str) + makeKey_14(str)).substr(2, 24) 666 } 667 function makeKey_138(str) { 668 return hex_md5(makeKey_0(str) + makeKey_15(str)).substr(3, 24) 669 } 670 function makeKey_139(str) { 671 return hex_md5(makeKey_1(str) + makeKey_16(str)).substr(4, 24) 672 } 673 function makeKey_140(str) { 674 return hex_md5(makeKey_4(str) + makeKey_9(str)).substr(1, 24) 675 } 676 function makeKey_141(str) { 677 return hex_md5(makeKey_5(str) + makeKey_10(str)).substr(2, 24) 678 } 679 function makeKey_142(str) { 680 return hex_md5(makeKey_3(str) + makeKey_17(str)).substr(3, 24) 681 } 682 function makeKey_143(str) { 683 return hex_md5(makeKey_7(str) + makeKey_18(str)).substr(4, 24) 684 } 685 function makeKey_144(str) { 686 return hex_md5(makeKey_17(str) + makeKey_19(str)).substr(1, 24) 687 } 688 function makeKey_145(str) { 689 return hex_md5(makeKey_18(str) + makeKey_0(str)).substr(2, 24) 690 } 691 function makeKey_146(str) { 692 return hex_md5(makeKey_19(str) + makeKey_1(str)).substr(3, 24) 693 } 694 function makeKey_147(str) { 695 return hex_md5(makeKey_0(str) + makeKey_4(str)).substr(4, 24) 696 } 697 function makeKey_148(str) { 698 return hex_md5(makeKey_1(str) + makeKey_5(str)).substr(3, 24) 699 } 700 function makeKey_149(str) { 701 return hex_md5(makeKey_4(str) + makeKey_3(str)).substr(4, 24) 702 } 703 function makeKey_150(str) { 704 return hex_md5(makeKey_14(str) + makeKey_19(str)).substr(1, 24) 705 } 706 function makeKey_151(str) { 707 return hex_md5(makeKey_15(str) + makeKey_0(str)).substr(2, 24) 708 } 709 function makeKey_152(str) { 710 return hex_md5(makeKey_16(str) + makeKey_1(str)).substr(3, 24) 711 } 712 function makeKey_153(str) { 713 return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(1, 24) 714 } 715 function makeKey_154(str) { 716 return hex_md5(makeKey_10(str) + makeKey_5(str)).substr(1, 24) 717 } 718 function makeKey_155(str) { 719 return hex_md5(makeKey_17(str) + makeKey_3(str)).substr(2, 24) 720 } 721 function makeKey_156(str) { 722 return hex_md5(makeKey_18(str) + makeKey_7(str)).substr(3, 24) 723 } 724 function makeKey_157(str) { 725 return hex_md5(makeKey_19(str) + makeKey_3(str)).substr(4, 24) 726 } 727 function makeKey_158(str) { 728 return hex_md5(makeKey_0(str) + makeKey_7(str)).substr(1, 24) 729 } 730 function makeKey_159(str) { 731 return hex_md5(makeKey_1(str) + makeKey_8(str)).substr(2, 24) 732 } 733 function makeKey_160(str) { 734 return hex_md5(makeKey_4(str) + makeKey_14(str)).substr(3, 24) 735 } 736 function makeKey_161(str) { 737 return hex_md5(makeKey_19(str) + makeKey_15(str)).substr(4, 24) 738 } 739 function makeKey_162(str) { 740 return hex_md5(makeKey_0(str) + makeKey_16(str)).substr(1, 24) 741 } 742 function makeKey_163(str) { 743 return hex_md5(makeKey_1(str) + makeKey_9(str)).substr(2, 24) 744 } 745 function makeKey_164(str) { 746 return hex_md5(makeKey_4(str) + makeKey_10(str)).substr(3, 24) 747 } 748 function makeKey_165(str) { 749 return hex_md5(makeKey_5(str) + makeKey_17(str)).substr(4, 24) 750 } 751 function makeKey_166(str) { 752 return hex_md5(makeKey_3(str) + makeKey_18(str)).substr(3, 24) 753 } 754 function makeKey_167(str) { 755 return hex_md5(makeKey_7(str) + makeKey_19(str)).substr(4, 24) 756 } 757 function makeKey_168(str) { 758 return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(1, 24) 759 } 760 function makeKey_169(str) { 761 return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(2, 24) 762 } 763 function makeKey_170(str) { 764 return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(3, 24) 765 } 766 function makeKey_171(str) { 767 return hex_md5(makeKey_17(str) + makeKey_5(str)).substr(1, 24) 768 } 769 function makeKey_172(str) { 770 return hex_md5(makeKey_18(str) + makeKey_3(str)).substr(2, 24) 771 } 772 function makeKey_173(str) { 773 return hex_md5(makeKey_19(str) + makeKey_7(str)).substr(3, 24) 774 } 775 function makeKey_174(str) { 776 return hex_md5(makeKey_0(str) + makeKey_17(str)).substr(4, 24) 777 } 778 function makeKey_175(str) { 779 return hex_md5(makeKey_1(str) + makeKey_18(str)).substr(1, 24) 780 } 781 function makeKey_176(str) { 782 return hex_md5(makeKey_4(str) + makeKey_19(str)).substr(2, 24) 783 } 784 function makeKey_177(str) { 785 return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(3, 24) 786 } 787 function makeKey_178(str) { 788 return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(4, 24) 789 } 790 function makeKey_179(str) { 791 return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(1, 24) 792 } 793 function makeKey_180(str) { 794 return hex_md5(makeKey_18(str) + makeKey_14(str)).substr(3, 24) 795 } 796 function makeKey_181(str) { 797 return hex_md5(makeKey_19(str) + makeKey_15(str)).substr(1, 24) 798 } 799 function makeKey_182(str) { 800 return hex_md5(makeKey_0(str) + makeKey_16(str)).substr(2, 24) 801 } 802 function makeKey_183(str) { 803 return hex_md5(makeKey_1(str) + makeKey_9(str)).substr(3, 24) 804 } 805 function makeKey_184(str) { 806 return hex_md5(makeKey_4(str) + makeKey_10(str)).substr(4, 24) 807 } 808 function makeKey_185(str) { 809 return hex_md5(makeKey_14(str) + makeKey_17(str)).substr(3, 24) 810 } 811 function makeKey_186(str) { 812 return hex_md5(makeKey_15(str) + makeKey_18(str)).substr(4, 24) 813 } 814 function makeKey_187(str) { 815 return hex_md5(makeKey_16(str) + makeKey_19(str)).substr(4, 24) 816 } 817 function makeKey_188(str) { 818 return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(1, 24) 819 } 820 function makeKey_189(str) { 821 return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(2, 24) 822 } 823 function makeKey_190(str) { 824 return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(3, 24) 825 } 826 function makeKey_191(str) { 827 return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(4, 24) 828 } 829 function makeKey_192(str) { 830 return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(1, 24) 831 } 832 function makeKey_193(str) { 833 return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(2, 24) 834 } 835 function makeKey_194(str) { 836 return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(3, 24) 837 } 838 function makeKey_195(str) { 839 return hex_md5(makeKey_4(str) + makeKey_14(str)).substr(4, 24) 840 } 841 function makeKey_196(str) { 842 return hex_md5(makeKey_5(str) + makeKey_15(str)).substr(3, 24) 843 } 844 function makeKey_197(str) { 845 return hex_md5(makeKey_3(str) + makeKey_16(str)).substr(4, 24) 846 } 847 function makeKey_198(str) { 848 return hex_md5(makeKey_3(str) + makeKey_9(str)).substr(1, 24) 849 } 850 function makeKey_199(str) { 851 return hex_md5(makeKey_7(str) + makeKey_1(str)).substr(2, 24) 852 } 853 function makeKey_200(str) { 854 return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(2, 24) 855 } 856 function makeKey_201(str) { 857 return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(3, 24) 858 } 859 function makeKey_202(str) { 860 return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(1, 24) 861 } 862 function makeKey_203(str) { 863 return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(2, 24) 864 } 865 function makeKey_204(str) { 866 return hex_md5(makeKey_4(str) + makeKey_5(str)).substr(3, 24) 867 } 868 function makeKey_205(str) { 869 return hex_md5(makeKey_14(str) + makeKey_3(str)).substr(4, 24) 870 } 871 function makeKey_206(str) { 872 return hex_md5(makeKey_15(str) + makeKey_7(str)).substr(1, 24) 873 } 874 function makeKey_207(str) { 875 return hex_md5(makeKey_16(str) + makeKey_17(str)).substr(2, 24) 876 } 877 function makeKey_208(str) { 878 return hex_md5(makeKey_9(str) + makeKey_18(str)).substr(3, 24) 879 } 880 function makeKey_209(str) { 881 return hex_md5(makeKey_10(str) + makeKey_19(str)).substr(4, 24) 882 } 883 function makeKey_210(str) { 884 return hex_md5(makeKey_17(str) + makeKey_0(str)).substr(1, 24) 885 } 886 function makeKey_211(str) { 887 return hex_md5(makeKey_18(str) + makeKey_1(str)).substr(3, 24) 888 } 889 function makeKey_212(str) { 890 return hex_md5(makeKey_19(str) + makeKey_4(str)).substr(1, 24) 891 } 892 function makeKey_213(str) { 893 return hex_md5(makeKey_0(str) + makeKey_14(str)).substr(2, 24) 894 } 895 function makeKey_214(str) { 896 return hex_md5(makeKey_1(str) + makeKey_15(str)).substr(3, 24) 897 } 898 function makeKey_215(str) { 899 return hex_md5(makeKey_4(str) + makeKey_16(str)).substr(4, 24) 900 } 901 function makeKey_216(str) { 902 return hex_md5(makeKey_19(str) + makeKey_9(str)).substr(3, 24) 903 } 904 function makeKey_217(str) { 905 return hex_md5(makeKey_0(str) + makeKey_10(str)).substr(4, 24) 906 } 907 function makeKey_218(str) { 908 return hex_md5(makeKey_1(str) + makeKey_17(str)).substr(4, 24) 909 } 910 function makeKey_219(str) { 911 return hex_md5(makeKey_4(str) + makeKey_18(str)).substr(1, 24) 912 } 913 function makeKey_220(str) { 914 return hex_md5(makeKey_5(str) + makeKey_19(str)).substr(2, 24) 915 } 916 function makeKey_221(str) { 917 return hex_md5(makeKey_3(str) + makeKey_0(str)).substr(3, 24) 918 } 919 function makeKey_222(str) { 920 return hex_md5(makeKey_7(str) + makeKey_1(str)).substr(4, 24) 921 } 922 function makeKey_223(str) { 923 return hex_md5(makeKey_0(str) + makeKey_4(str)).substr(1, 24) 924 } 925 function makeKey_224(str) { 926 return hex_md5(makeKey_1(str) + makeKey_5(str)).substr(2, 24) 927 } 928 function makeKey_225(str) { 929 return hex_md5(makeKey_4(str) + makeKey_3(str)).substr(3, 24) 930 } 931 function makeKey_226(str) { 932 return hex_md5(makeKey_17(str) + makeKey_7(str)).substr(4, 24) 933 } 934 function makeKey_227(str) { 935 return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(2, 24) 936 } 937 function makeKey_228(str) { 938 return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(3, 24) 939 } 940 function makeKey_229(str) { 941 return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(1, 24) 942 } 943 function makeKey_230(str) { 944 return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(2, 24) 945 } 946 function makeKey_231(str) { 947 return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(3, 24) 948 } 949 function makeKey_232(str) { 950 return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(4, 24) 951 } 952 function makeKey_233(str) { 953 return hex_md5(makeKey_10(str) + makeKey_14(str)).substr(1, 24) 954 } 955 function makeKey_234(str) { 956 return hex_md5(makeKey_17(str) + makeKey_15(str)).substr(2, 24) 957 } 958 function makeKey_235(str) { 959 return hex_md5(makeKey_18(str) + makeKey_16(str)).substr(3, 24) 960 } 961 function makeKey_236(str) { 962 return hex_md5(makeKey_19(str) + makeKey_9(str)).substr(4, 24) 963 } 964 function makeKey_237(str) { 965 return hex_md5(makeKey_0(str) + makeKey_10(str)).substr(1, 24) 966 } 967 function makeKey_238(str) { 968 return hex_md5(makeKey_1(str) + makeKey_17(str)).substr(3, 24) 969 } 970 function makeKey_239(str) { 971 return hex_md5(makeKey_4(str) + makeKey_19(str)).substr(1, 24) 972 } 973 function makeKey_240(str) { 974 return hex_md5(makeKey_14(str) + makeKey_0(str)).substr(2, 24) 975 } 976 function makeKey_241(str) { 977 return hex_md5(makeKey_15(str) + makeKey_1(str)).substr(3, 24) 978 } 979 function makeKey_242(str) { 980 return hex_md5(makeKey_16(str) + makeKey_4(str)).substr(4, 24) 981 } 982 function makeKey_243(str) { 983 return hex_md5(makeKey_9(str) + makeKey_5(str)).substr(3, 24) 984 } 985 function makeKey_244(str) { 986 return hex_md5(makeKey_10(str) + makeKey_3(str)).substr(4, 24) 987 } 988 function makeKey_245(str) { 989 return hex_md5(makeKey_17(str) + makeKey_7(str)).substr(4, 24) 990 } 991 function makeKey_246(str) { 992 return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(2, 24) 993 } 994 function makeKey_247(str) { 995 return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(3, 24) 996 } 997 function makeKey_248(str) { 998 return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(1, 24) 999 } 1000 function makeKey_249(str) { 1001 return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(2, 24) 1002 } 1003 function makeKey_250(str) { 1004 return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(3, 24) 1005 } 1006 function makeKey_251(str) { 1007 return hex_md5(makeKey_19(str) + makeKey_4(str)).substr(4, 24) 1008 } 1009 function makeKey_252(str) { 1010 return hex_md5(makeKey_0(str) + makeKey_14(str)).substr(1, 24) 1011 } 1012 function makeKey_253(str) { 1013 return hex_md5(makeKey_1(str) + makeKey_15(str)).substr(2, 24) 1014 } 1015 function makeKey_254(str) { 1016 return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(3, 24) 1017 } 1018 function makeKey_255(str) { 1019 return hex_md5(makeKey_5(str) + makeKey_14(str)).substr(4, 24) 1020 } 1021 function makeKey_256(str) { 1022 return hex_md5(makeKey_3(str) + makeKey_15(str)).substr(1, 24) 1023 } 1024 function makeKey_257(str) { 1025 return hex_md5(makeKey_7(str) + makeKey_16(str)).substr(3, 24) 1026 } 1027 function makeKey_258(str) { 1028 return hex_md5(makeKey_0(str) + makeKey_9(str)).substr(1, 24) 1029 } 1030 function makeKey_259(str) { 1031 return hex_md5(makeKey_1(str) + makeKey_10(str)).substr(2, 24) 1032 } 1033 function makeKey_260(str) { 1034 return hex_md5(makeKey_4(str) + makeKey_17(str)).substr(3, 24) 1035 } 1036 function makeKey_261(str) { 1037 return hex_md5(makeKey_17(str) + makeKey_18(str)).substr(4, 24) 1038 } 1039 function makeKey_262(str) { 1040 return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(3, 24) 1041 } 1042 function makeKey_263(str) { 1043 return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(4, 24) 1044 } 1045 function makeKey_264(str) { 1046 return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(4, 24) 1047 } 1048 function makeKey_265(str) { 1049 return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(1, 24) 1050 } 1051 function makeKey_266(str) { 1052 return hex_md5(makeKey_4(str) + makeKey_19(str)).substr(2, 24) 1053 } 1054 function makeKey_267(str) { 1055 return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(3, 24) 1056 } 1057 function makeKey_268(str) { 1058 return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(4, 24) 1059 } 1060 function makeKey_269(str) { 1061 return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(1, 24) 1062 } 1063 function makeKey_270(str) { 1064 return hex_md5(makeKey_18(str) + makeKey_14(str)).substr(2, 24) 1065 } 1066 function makeKey_271(str) { 1067 return hex_md5(makeKey_19(str) + makeKey_15(str)).substr(3, 24) 1068 } 1069 function makeKey_272(str) { 1070 return hex_md5(makeKey_0(str) + makeKey_16(str)).substr(4, 24) 1071 } 1072 function makeKey_273(str) { 1073 return hex_md5(makeKey_1(str) + makeKey_9(str)).substr(3, 24) 1074 } 1075 function makeKey_274(str) { 1076 return hex_md5(makeKey_19(str) + makeKey_1(str)).substr(4, 24) 1077 } 1078 function makeKey_275(str) { 1079 return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(1, 24) 1080 } 1081 function makeKey_276(str) { 1082 return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(2, 24) 1083 } 1084 function makeKey_277(str) { 1085 return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(2, 24) 1086 } 1087 function makeKey_278(str) { 1088 return hex_md5(makeKey_5(str) + makeKey_4(str)).substr(3, 24) 1089 } 1090 function makeKey_279(str) { 1091 return hex_md5(makeKey_3(str) + makeKey_5(str)).substr(1, 24) 1092 } 1093 function makeKey_280(str) { 1094 return hex_md5(makeKey_7(str) + makeKey_3(str)).substr(2, 24) 1095 } 1096 function makeKey_281(str) { 1097 return hex_md5(makeKey_17(str) + makeKey_7(str)).substr(3, 24) 1098 } 1099 function makeKey_282(str) { 1100 return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(4, 24) 1101 } 1102 function makeKey_283(str) { 1103 return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(1, 24) 1104 } 1105 function makeKey_284(str) { 1106 return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(2, 24) 1107 } 1108 function makeKey_285(str) { 1109 return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(3, 24) 1110 } 1111 function makeKey_286(str) { 1112 return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(4, 24) 1113 } 1114 function makeKey_287(str) { 1115 return hex_md5(makeKey_14(str) + makeKey_4(str)).substr(1, 24) 1116 } 1117 function makeKey_288(str) { 1118 return hex_md5(makeKey_15(str) + makeKey_14(str)).substr(3, 24) 1119 } 1120 function makeKey_289(str) { 1121 return hex_md5(makeKey_16(str) + makeKey_15(str)).substr(1, 24) 1122 } 1123 function makeKey_290(str) { 1124 return hex_md5(makeKey_9(str) + makeKey_16(str)).substr(2, 24) 1125 } 1126 function makeKey_291(str) { 1127 return hex_md5(makeKey_10(str) + makeKey_9(str)).substr(3, 24) 1128 } 1129 function makeKey_292(str) { 1130 return hex_md5(makeKey_17(str) + makeKey_10(str)).substr(4, 24) 1131 } 1132 function makeKey_293(str) { 1133 return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(3, 24) 1134 } 1135 function makeKey_294(str) { 1136 return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(4, 24) 1137 } 1138 function makeKey_295(str) { 1139 return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(4, 24) 1140 } 1141 function makeKey_296(str) { 1142 return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(1, 24) 1143 } 1144 function makeKey_297(str) { 1145 return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(2, 24) 1146 } 1147 function makeKey_298(str) { 1148 return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(3, 24) 1149 } 1150 function makeKey_299(str) { 1151 return hex_md5(makeKey_5(str) + makeKey_5(str)).substr(4, 24) 1152 } 1153 function makeKey_300(str) { 1154 return hex_md5(makeKey_3(str) + makeKey_3(str)).substr(1, 24) 1155 } 1156 function makeKey_301(str) { 1157 return hex_md5(makeKey_7(str) + makeKey_7(str)).substr(2, 24) 1158 } 1159 function makeKey_302(str) { 1160 return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(3, 24) 1161 } 1162 function makeKey_303(str) { 1163 return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(4, 24) 1164 } 1165 function makeKey_304(str) { 1166 return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(3, 24) 1167 } 1168 function makeKey_305(str) { 1169 return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(4, 24) 1170 } 1171 function makeKey_306(str) { 1172 return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(1, 24) 1173 } 1174 function makeKey_307(str) { 1175 return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(2, 24) 1176 } 1177 function makeKey_308(str) { 1178 return hex_md5(makeKey_14(str) + makeKey_14(str)).substr(2, 24) 1179 } 1180 function makeKey_309(str) { 1181 return hex_md5(makeKey_15(str) + makeKey_15(str)).substr(3, 24) 1182 } 1183 function makeKey_310(str) { 1184 return hex_md5(makeKey_16(str) + makeKey_16(str)).substr(1, 24) 1185 } 1186 function makeKey_311(str) { 1187 return hex_md5(makeKey_9(str) + makeKey_9(str)).substr(2, 24) 1188 } 1189 function makeKey_312(str) { 1190 return hex_md5(makeKey_10(str) + makeKey_10(str)).substr(3, 24) 1191 } 1192 function makeKey_313(str) { 1193 return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(4, 24) 1194 } 1195 function makeKey_314(str) { 1196 return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(1, 24) 1197 } 1198 function makeKey_315(str) { 1199 return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(2, 24) 1200 } 1201 function makeKey_316(str) { 1202 return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(3, 24) 1203 } 1204 function makeKey_317(str) { 1205 return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(4, 24) 1206 } 1207 function makeKey_318(str) { 1208 return hex_md5(makeKey_5(str) + makeKey_5(str)).substr(1, 24) 1209 } 1210 function makeKey_319(str) { 1211 return hex_md5(makeKey_3(str) + makeKey_3(str)).substr(3, 24) 1212 } 1213 function makeKey_320(str) { 1214 return hex_md5(makeKey_7(str) + makeKey_7(str)).substr(1, 24) 1215 } 1216 function makeKey_321(str) { 1217 return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(2, 24) 1218 } 1219 function makeKey_322(str) { 1220 return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(3, 24) 1221 } 1222 function makeKey_323(str) { 1223 return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(4, 24) 1224 } 1225 function makeKey_324(str) { 1226 return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(3, 24) 1227 } 1228 function makeKey_325(str) { 1229 return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(4, 24) 1230 } 1231 function makeKey_326(str) { 1232 return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(4, 24) 1233 } 1234 function makeKey_327(str) { 1235 return hex_md5(makeKey_19(str) + makeKey_14(str)).substr(1, 24) 1236 } 1237 function makeKey_328(str) { 1238 return hex_md5(makeKey_0(str) + makeKey_15(str)).substr(2, 24) 1239 } 1240 function makeKey_329(str) { 1241 return hex_md5(makeKey_1(str) + makeKey_16(str)).substr(3, 24) 1242 } 1243 function makeKey_330(str) { 1244 return hex_md5(makeKey_4(str) + makeKey_9(str)).substr(4, 24) 1245 } 1246 function makeKey_331(str) { 1247 return hex_md5(makeKey_19(str) + makeKey_10(str)).substr(1, 24) 1248 } 1249 function makeKey_332(str) { 1250 return hex_md5(makeKey_0(str) + makeKey_17(str)).substr(2, 24) 1251 } 1252 function makeKey_333(str) { 1253 return hex_md5(makeKey_1(str) + makeKey_18(str)).substr(3, 24) 1254 } 1255 function makeKey_334(str) { 1256 return hex_md5(makeKey_4(str) + makeKey_18(str)).substr(4, 24) 1257 } 1258 function makeKey_335(str) { 1259 return hex_md5(makeKey_5(str) + makeKey_19(str)).substr(3, 24) 1260 } 1261 function makeKey_336(str) { 1262 return hex_md5(makeKey_3(str) + makeKey_0(str)).substr(4, 24) 1263 } 1264 function makeKey_337(str) { 1265 return hex_md5(makeKey_7(str) + makeKey_1(str)).substr(2, 24) 1266 } 1267 function makeKey_338(str) { 1268 return hex_md5(makeKey_0(str) + makeKey_4(str)).substr(3, 24) 1269 } 1270 function makeKey_339(str) { 1271 return hex_md5(makeKey_1(str) + makeKey_5(str)).substr(1, 24) 1272 } 1273 function makeKey_340(str) { 1274 return hex_md5(makeKey_4(str) + makeKey_3(str)).substr(2, 24) 1275 } 1276 function makeKey_341(str) { 1277 return hex_md5(makeKey_17(str) + makeKey_7(str)).substr(3, 24) 1278 } 1279 function makeKey_342(str) { 1280 return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(4, 24) 1281 } 1282 function makeKey_343(str) { 1283 return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(1, 24) 1284 } 1285 function makeKey_344(str) { 1286 return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(2, 24) 1287 } 1288 function makeKey_345(str) { 1289 return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(3, 24) 1290 } 1291 function makeKey_346(str) { 1292 return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(4, 24) 1293 } 1294 function makeKey_347(str) { 1295 return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(1, 24) 1296 } 1297 function makeKey_348(str) { 1298 return hex_md5(makeKey_10(str) + makeKey_14(str)).substr(3, 24) 1299 } 1300 function makeKey_349(str) { 1301 return hex_md5(makeKey_17(str) + makeKey_15(str)).substr(1, 24) 1302 } 1303 function makeKey_350(str) { 1304 return hex_md5(makeKey_18(str) + makeKey_16(str)).substr(2, 24) 1305 } 1306 function makeKey_351(str) { 1307 return hex_md5(makeKey_19(str) + makeKey_9(str)).substr(3, 24) 1308 } 1309 function makeKey_352(str) { 1310 return hex_md5(makeKey_0(str) + makeKey_10(str)).substr(4, 24) 1311 } 1312 function makeKey_353(str) { 1313 return hex_md5(makeKey_1(str) + makeKey_17(str)).substr(3, 24) 1314 } 1315 function makeKey_354(str) { 1316 return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(4, 24) 1317 } 1318 function makeKey_355(str) { 1319 return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(4, 24) 1320 } 1321 function makeKey_356(str) { 1322 return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(1, 24) 1323 } 1324 function makeKey_357(str) { 1325 return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(2, 24) 1326 } 1327 function makeKey_358(str) { 1328 return hex_md5(makeKey_4(str) + makeKey_5(str)).substr(3, 24) 1329 } 1330 function makeKey_359(str) { 1331 return hex_md5(makeKey_5(str) + makeKey_3(str)).substr(4, 24) 1332 } 1333 function makeKey_360(str) { 1334 return hex_md5(makeKey_3(str) + makeKey_7(str)).substr(2, 24) 1335 } 1336 function makeKey_361(str) { 1337 return hex_md5(makeKey_7(str) + makeKey_17(str)).substr(3, 24) 1338 } 1339 function makeKey_362(str) { 1340 return hex_md5(makeKey_17(str) + makeKey_18(str)).substr(1, 24) 1341 } 1342 function makeKey_363(str) { 1343 return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(2, 24) 1344 } 1345 function makeKey_364(str) { 1346 return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(3, 24) 1347 } 1348 function makeKey_365(str) { 1349 return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(4, 24) 1350 } 1351 function makeKey_366(str) { 1352 return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(1, 24) 1353 } 1354 function makeKey_367(str) { 1355 return hex_md5(makeKey_4(str) + makeKey_7(str)).substr(2, 24) 1356 } 1357 function makeKey_368(str) { 1358 return hex_md5(makeKey_14(str) + makeKey_17(str)).substr(3, 24) 1359 } 1360 function makeKey_369(str) { 1361 return hex_md5(makeKey_15(str) + makeKey_18(str)).substr(4, 24) 1362 } 1363 function makeKey_370(str) { 1364 return hex_md5(makeKey_16(str) + makeKey_19(str)).substr(1, 24) 1365 } 1366 function makeKey_371(str) { 1367 return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(3, 24) 1368 } 1369 function makeKey_372(str) { 1370 return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(1, 24) 1371 } 1372 function makeKey_373(str) { 1373 return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(2, 24) 1374 } 1375 function makeKey_374(str) { 1376 return hex_md5(makeKey_19(str) + makeKey_17(str)).substr(3, 24) 1377 } 1378 function makeKey_375(str) { 1379 return hex_md5(makeKey_0(str) + makeKey_18(str)).substr(4, 24) 1380 } 1381 function makeKey_376(str) { 1382 return hex_md5(makeKey_1(str) + makeKey_19(str)).substr(3, 24) 1383 } 1384 function makeKey_377(str) { 1385 return hex_md5(makeKey_4(str) + makeKey_0(str)).substr(4, 24) 1386 } 1387 function makeKey_378(str) { 1388 return hex_md5(makeKey_5(str) + makeKey_1(str)).substr(4, 24) 1389 } 1390 function makeKey_379(str) { 1391 return hex_md5(makeKey_3(str) + makeKey_4(str)).substr(1, 24) 1392 } 1393 function makeKey_380(str) { 1394 return hex_md5(makeKey_7(str) + makeKey_9(str)).substr(2, 24) 1395 } 1396 function makeKey_381(str) { 1397 return hex_md5(makeKey_17(str) + makeKey_10(str)).substr(3, 24) 1398 } 1399 function makeKey_382(str) { 1400 return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(4, 24) 1401 } 1402 function makeKey_383(str) { 1403 return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(1, 24) 1404 } 1405 function makeKey_384(str) { 1406 return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(2, 24) 1407 } 1408 function makeKey_385(str) { 1409 return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(3, 24) 1410 } 1411 function makeKey_386(str) { 1412 return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(4, 24) 1413 } 1414 function makeKey_387(str) { 1415 return hex_md5(makeKey_17(str) + makeKey_1(str)).substr(2, 24) 1416 } 1417 function makeKey_388(str) { 1418 return hex_md5(makeKey_18(str) + makeKey_4(str)).substr(3, 24) 1419 } 1420 function makeKey_389(str) { 1421 return hex_md5(makeKey_19(str) + makeKey_7(str)).substr(1, 24) 1422 } 1423 function makeKey_390(str) { 1424 return hex_md5(makeKey_0(str) + makeKey_17(str)).substr(2, 24) 1425 } 1426 function makeKey_391(str) { 1427 return hex_md5(makeKey_1(str) + makeKey_18(str)).substr(3, 24) 1428 } 1429 function makeKey_392(str) { 1430 return hex_md5(makeKey_4(str) + makeKey_19(str)).substr(4, 24) 1431 } 1432 function makeKey_393(str) { 1433 return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(1, 24) 1434 } 1435 function makeKey_394(str) { 1436 return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(2, 24) 1437 } 1438 function makeKey_395(str) { 1439 return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(3, 24) 1440 } 1441 function makeKey_396(str) { 1442 return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(4, 24) 1443 } 1444 function makeKey_397(str) { 1445 return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(1, 24) 1446 } 1447 function makeKey_398(str) { 1448 return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(3, 24) 1449 } 1450 function makeKey_399(str) { 1451 return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(1, 24) 1452 } 1453 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]; 1454 function getValue(cookie) { 1455 var funIndex = strToLong(cookie) % arrFun.length; 1456 var fun = arrFun[funIndex]; 1457 return fun(cookie); 1458 } 1459 var hexcase = 0; 1460 var b64pad = ""; 1461 var chrsz = 8; 1462 function hex_md5(s) { 1463 return binl2hex(core_md5(str2binl(s), s.length * chrsz)); 1464 } 1465 function b64_md5(s) { 1466 return binl2b64(core_md5(str2binl(s), s.length * chrsz)); 1467 } 1468 function str_md5(s) { 1469 return binl2str(core_md5(str2binl(s), s.length * chrsz)); 1470 } 1471 function hex_hmac_md5(key, data) { 1472 return binl2hex(core_hmac_md5(key, data)); 1473 } 1474 function b64_hmac_md5(key, data) { 1475 return binl2b64(core_hmac_md5(key, data)); 1476 } 1477 function str_hmac_md5(key, data) { 1478 return binl2str(core_hmac_md5(key, data)); 1479 } 1480 function md5_vm_test() { 1481 return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72"; 1482 } 1483 function core_md5(x, len) { 1484 x[len >> 5] |= 0x80 << ((len) % 32); 1485 x[(((len + 64) >>> 9) << 4) + 14] = len; 1486 var a = 1732584193; 1487 var b = -271733879; 1488 var c = -1732584194; 1489 var d = 271733878; 1490 for (var i = 0; i < x.length; i += 16) { 1491 var olda = a; 1492 var oldb = b; 1493 var oldc = c; 1494 var oldd = d; 1495 a = md5_ff(a, b, c, d, x[i + 0], 7, -680876936); 1496 d = md5_ff(d, a, b, c, x[i + 1], 12, -389564586); 1497 c = md5_ff(c, d, a, b, x[i + 2], 17, 606105819); 1498 b = md5_ff(b, c, d, a, x[i + 3], 22, -1044525330); 1499 a = md5_ff(a, b, c, d, x[i + 4], 7, -176418897); 1500 d = md5_ff(d, a, b, c, x[i + 5], 12, 1200080426); 1501 c = md5_ff(c, d, a, b, x[i + 6], 17, -1473231341); 1502 b = md5_ff(b, c, d, a, x[i + 7], 22, -45705983); 1503 a = md5_ff(a, b, c, d, x[i + 8], 7, 1770035416); 1504 d = md5_ff(d, a, b, c, x[i + 9], 12, -1958414417); 1505 c = md5_ff(c, d, a, b, x[i + 10], 17, -42063); 1506 b = md5_ff(b, c, d, a, x[i + 11], 22, -1990404162); 1507 a = md5_ff(a, b, c, d, x[i + 12], 7, 1804603682); 1508 d = md5_ff(d, a, b, c, x[i + 13], 12, -40341101); 1509 c = md5_ff(c, d, a, b, x[i + 14], 17, -1502002290); 1510 b = md5_ff(b, c, d, a, x[i + 15], 22, 1236535329); 1511 a = md5_gg(a, b, c, d, x[i + 1], 5, -165796510); 1512 d = md5_gg(d, a, b, c, x[i + 6], 9, -1069501632); 1513 c = md5_gg(c, d, a, b, x[i + 11], 14, 643717713); 1514 b = md5_gg(b, c, d, a, x[i + 0], 20, -373897302); 1515 a = md5_gg(a, b, c, d, x[i + 5], 5, -701558691); 1516 d = md5_gg(d, a, b, c, x[i + 10], 9, 38016083); 1517 c = md5_gg(c, d, a, b, x[i + 15], 14, -660478335); 1518 b = md5_gg(b, c, d, a, x[i + 4], 20, -405537848); 1519 a = md5_gg(a, b, c, d, x[i + 9], 5, 568446438); 1520 d = md5_gg(d, a, b, c, x[i + 14], 9, -1019803690); 1521 c = md5_gg(c, d, a, b, x[i + 3], 14, -187363961); 1522 b = md5_gg(b, c, d, a, x[i + 8], 20, 1163531501); 1523 a = md5_gg(a, b, c, d, x[i + 13], 5, -1444681467); 1524 d = md5_gg(d, a, b, c, x[i + 2], 9, -51403784); 1525 c = md5_gg(c, d, a, b, x[i + 7], 14, 1735328473); 1526 b = md5_gg(b, c, d, a, x[i + 12], 20, -1926607734); 1527 a = md5_hh(a, b, c, d, x[i + 5], 4, -378558); 1528 d = md5_hh(d, a, b, c, x[i + 8], 11, -2022574463); 1529 c = md5_hh(c, d, a, b, x[i + 11], 16, 1839030562); 1530 b = md5_hh(b, c, d, a, x[i + 14], 23, -35309556); 1531 a = md5_hh(a, b, c, d, x[i + 1], 4, -1530992060); 1532 d = md5_hh(d, a, b, c, x[i + 4], 11, 1272893353); 1533 c = md5_hh(c, d, a, b, x[i + 7], 16, -155497632); 1534 b = md5_hh(b, c, d, a, x[i + 10], 23, -1094730640); 1535 a = md5_hh(a, b, c, d, x[i + 13], 4, 681279174); 1536 d = md5_hh(d, a, b, c, x[i + 0], 11, -358537222); 1537 c = md5_hh(c, d, a, b, x[i + 3], 16, -722521979); 1538 b = md5_hh(b, c, d, a, x[i + 6], 23, 76029189); 1539 a = md5_hh(a, b, c, d, x[i + 9], 4, -640364487); 1540 d = md5_hh(d, a, b, c, x[i + 12], 11, -421815835); 1541 c = md5_hh(c, d, a, b, x[i + 15], 16, 530742520); 1542 b = md5_hh(b, c, d, a, x[i + 2], 23, -995338651); 1543 a = md5_ii(a, b, c, d, x[i + 0], 6, -198630844); 1544 d = md5_ii(d, a, b, c, x[i + 7], 10, 1126891415); 1545 c = md5_ii(c, d, a, b, x[i + 14], 15, -1416354905); 1546 b = md5_ii(b, c, d, a, x[i + 5], 21, -57434055); 1547 a = md5_ii(a, b, c, d, x[i + 12], 6, 1700485571); 1548 d = md5_ii(d, a, b, c, x[i + 3], 10, -1894986606); 1549 c = md5_ii(c, d, a, b, x[i + 10], 15, -1051523); 1550 b = md5_ii(b, c, d, a, x[i + 1], 21, -2054922799); 1551 a = md5_ii(a, b, c, d, x[i + 8], 6, 1873313359); 1552 d = md5_ii(d, a, b, c, x[i + 15], 10, -30611744); 1553 c = md5_ii(c, d, a, b, x[i + 6], 15, -1560198380); 1554 b = md5_ii(b, c, d, a, x[i + 13], 21, 1309151649); 1555 a = md5_ii(a, b, c, d, x[i + 4], 6, -145523070); 1556 d = md5_ii(d, a, b, c, x[i + 11], 10, -1120210379); 1557 c = md5_ii(c, d, a, b, x[i + 2], 15, 718787259); 1558 b = md5_ii(b, c, d, a, x[i + 9], 21, -343485551); 1559 a = safe_add(a, olda); 1560 b = safe_add(b, oldb); 1561 c = safe_add(c, oldc); 1562 d = safe_add(d, oldd); 1563 } 1564 return Array(a, b, c, d); 1565 } 1566 function md5_cmn(q, a, b, x, s, t) { 1567 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b); 1568 } 1569 function md5_ff(a, b, c, d, x, s, t) { 1570 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t); 1571 } 1572 function md5_gg(a, b, c, d, x, s, t) { 1573 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t); 1574 } 1575 function md5_hh(a, b, c, d, x, s, t) { 1576 return md5_cmn(b ^ c ^ d, a, b, x, s, t); 1577 } 1578 function md5_ii(a, b, c, d, x, s, t) { 1579 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t); 1580 } 1581 function core_hmac_md5(key, data) { 1582 var bkey = str2binl(key); 1583 if (bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz); 1584 var ipad = Array(16), 1585 opad = Array(16); 1586 for (var i = 0; i < 16; i++) { 1587 ipad[i] = bkey[i] ^ 0x36363636; 1588 opad[i] = bkey[i] ^ 0x5C5C5C5C; 1589 } 1590 var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz); 1591 return core_md5(opad.concat(hash), 512 + 128); 1592 } 1593 function safe_add(x, y) { 1594 var lsw = (x & 0xFFFF) + (y & 0xFFFF); 1595 var msw = (x >> 16) + (y >> 16) + (lsw >> 16); 1596 return (msw << 16) | (lsw & 0xFFFF); 1597 } 1598 function bit_rol(num, cnt) { 1599 return (num << cnt) | (num >>> (32 - cnt)); 1600 } 1601 function str2binl(str) { 1602 var bin = Array(); 1603 var mask = (1 << chrsz) - 1; 1604 for (var i = 0; i < str.length * chrsz; i += chrsz) bin[i >> 5] |= (str.charCodeAt(i / chrsz) & mask) << (i % 32); 1605 return bin; 1606 } 1607 function binl2str(bin) { 1608 var str = ""; 1609 var mask = (1 << chrsz) - 1; 1610 for (var i = 0; i < bin.length * 32; i += chrsz) str += String.fromCharCode((bin[i >> 5] >>> (i % 32)) & mask); 1611 return str; 1612 } 1613 function binl2hex(binarray) { 1614 var hex_tab = hexcase ? "0123456789ABCDEF": "0123456789abcdef"; 1615 var str = ""; 1616 for (var i = 0; i < binarray.length * 4; i++) { 1617 str += hex_tab.charAt((binarray[i >> 2] >> ((i % 4) * 8 + 4)) & 0xF) + hex_tab.charAt((binarray[i >> 2] >> ((i % 4) * 8)) & 0xF); 1618 } 1619 return str; 1620 } 1621 function binl2b64(binarray) { 1622 var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; 1623 var str = ""; 1624 for (var i = 0; i < binarray.length * 4; i += 3) { 1625 var triplet = (((binarray[i >> 2] >> 8 * (i % 4)) & 0xFF) << 16) | (((binarray[i + 1 >> 2] >> 8 * ((i + 1) % 4)) & 0xFF) << 8) | ((binarray[i + 2 >> 2] >> 8 * ((i + 2) % 4)) & 0xFF); 1626 for (var j = 0; j < 4; j++) { 1627 if (i * 8 + j * 6 > binarray.length * 32) str += b64pad; 1628 else str += tab.charAt((triplet >> 6 * (3 - j)) & 0x3F); 1629 } 1630 } 1631 return str; 1632 } 1633 1634 function Base64() { 1635 1636 // private property 1637 _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; 1638 1639 // public method for encoding 1640 this.encode = function (input) { 1641 var output = ""; 1642 var chr1, chr2, chr3, enc1, enc2, enc3, enc4; 1643 var i = 0; 1644 input = _utf8_encode(input); 1645 while (i < input.length) { 1646 chr1 = input.charCodeAt(i++); 1647 chr2 = input.charCodeAt(i++); 1648 chr3 = input.charCodeAt(i++); 1649 enc1 = chr1 >> 2; 1650 enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); 1651 enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); 1652 enc4 = chr3 & 63; 1653 if (isNaN(chr2)) { 1654 enc3 = enc4 = 64; 1655 } else if (isNaN(chr3)) { 1656 enc4 = 64; 1657 } 1658 output = output + 1659 _keyStr.charAt(enc1) + _keyStr.charAt(enc2) + 1660 _keyStr.charAt(enc3) + _keyStr.charAt(enc4); 1661 } 1662 return output; 1663 } 1664 1665 // public method for decoding 1666 this.decode = function (input) { 1667 var output = ""; 1668 var chr1, chr2, chr3; 1669 var enc1, enc2, enc3, enc4; 1670 var i = 0; 1671 input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); 1672 while (i < input.length) { 1673 enc1 = _keyStr.indexOf(input.charAt(i++)); 1674 enc2 = _keyStr.indexOf(input.charAt(i++)); 1675 enc3 = _keyStr.indexOf(input.charAt(i++)); 1676 enc4 = _keyStr.indexOf(input.charAt(i++)); 1677 chr1 = (enc1 << 2) | (enc2 >> 4); 1678 chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); 1679 chr3 = ((enc3 & 3) << 6) | enc4; 1680 output = output + String.fromCharCode(chr1); 1681 if (enc3 != 64) { 1682 output = output + String.fromCharCode(chr2); 1683 } 1684 if (enc4 != 64) { 1685 output = output + String.fromCharCode(chr3); 1686 } 1687 } 1688 output = _utf8_decode(output); 1689 return output; 1690 } 1691 1692 // private method for UTF-8 encoding 1693 _utf8_encode = function (string) { 1694 string = string.replace(/\r\n/g,"\n"); 1695 var utftext = ""; 1696 for (var n = 0; n < string.length; n++) { 1697 var c = string.charCodeAt(n); 1698 if (c < 128) { 1699 utftext += String.fromCharCode(c); 1700 } else if((c > 127) && (c < 2048)) { 1701 utftext += String.fromCharCode((c >> 6) | 192); 1702 utftext += String.fromCharCode((c & 63) | 128); 1703 } else { 1704 utftext += String.fromCharCode((c >> 12) | 224); 1705 utftext += String.fromCharCode(((c >> 6) & 63) | 128); 1706 utftext += String.fromCharCode((c & 63) | 128); 1707 } 1708 1709 } 1710 return utftext; 1711 } 1712 1713 // private method for UTF-8 decoding 1714 _utf8_decode = function (utftext) { 1715 var string = ""; 1716 var i = 0; 1717 var c = c1 = c2 = 0; 1718 while ( i < utftext.length ) { 1719 c = utftext.charCodeAt(i); 1720 if (c < 128) { 1721 string += String.fromCharCode(c); 1722 i++; 1723 } else if((c > 191) && (c < 224)) { 1724 c2 = utftext.charCodeAt(i+1); 1725 string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); 1726 i += 2; 1727 } else { 1728 c2 = utftext.charCodeAt(i+1); 1729 c3 = utftext.charCodeAt(i+2); 1730 string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); 1731 i += 3; 1732 } 1733 } 1734 return string; 1735 } 1736 } 1737 1738 /* 1739 * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined 1740 * in FIPS PUB 180-1 1741 * Version 2.1-BETA Copyright Paul Johnston 2000 - 2002. 1742 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet 1743 * Distributed under the BSD License 1744 * See http://pajhome.org.uk/crypt/md5 for details. 1745 */ 1746 /* 1747 * Configurable variables. You may need to tweak these to be compatible with 1748 * the server-side, but the defaults work in most cases. 1749 */ 1750 var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */ 1751 var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */ 1752 var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */ 1753 1754 /* 1755 * These are the functions you'll usually want to call 1756 * They take string arguments and return either hex or base-64 encoded strings 1757 */ 1758 function hex_sha1(s) { 1759 return binb2hex(core_sha1(str2binb(s), s.length * chrsz)); 1760 } 1761 1762 function b64_sha1(s) { 1763 return binb2b64(core_sha1(str2binb(s), s.length * chrsz)); 1764 } 1765 1766 function str_sha1(s) { 1767 return binb2str(core_sha1(str2binb(s), s.length * chrsz)); 1768 } 1769 1770 function hex_hmac_sha1(key, data) { 1771 return binb2hex(core_hmac_sha1(key, data)); 1772 } 1773 1774 function b64_hmac_sha1(key, data) { 1775 return binb2b64(core_hmac_sha1(key, data)); 1776 } 1777 1778 function str_hmac_sha1(key, data) { 1779 return binb2str(core_hmac_sha1(key, data)); 1780 } 1781 1782 /* 1783 * Perform a simple self-test to see if the VM is working 1784 */ 1785 function sha1_vm_test() { 1786 return hex_sha1("abc") == "a9993e364706816aba3e25717850c26c9cd0d89d"; 1787 } 1788 1789 /* 1790 * Calculate the SHA-1 of an array of big-endian words, and a bit length 1791 */ 1792 function core_sha1(x, len) { 1793 /* append padding */ 1794 x[len >> 5] |= 0x80 << (24 - len % 32); 1795 x[((len + 64 >> 9) << 4) + 15] = len; 1796 1797 var w = Array(80); 1798 var a = 1732584193; 1799 var b = -271733879; 1800 var c = -1732584194; 1801 var d = 271733878; 1802 var e = -1009589776; 1803 1804 for (var i = 0; i < x.length; i += 16) { 1805 var olda = a; 1806 var oldb = b; 1807 var oldc = c; 1808 var oldd = d; 1809 var olde = e; 1810 1811 for (var j = 0; j < 80; j++) { 1812 if (j < 16) w[j] = x[i + j]; 1813 else w[j] = rol(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1); 1814 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))); 1815 e = d; 1816 d = c; 1817 c = rol(b, 30); 1818 b = a; 1819 a = t; 1820 } 1821 1822 a = safe_add(a, olda); 1823 b = safe_add(b, oldb); 1824 c = safe_add(c, oldc); 1825 d = safe_add(d, oldd); 1826 e = safe_add(e, olde); 1827 } 1828 return Array(a, b, c, d, e); 1829 1830 } 1831 1832 /* 1833 * Perform the appropriate triplet combination function for the current 1834 * iteration 1835 */ 1836 function sha1_ft(t, b, c, d) { 1837 if (t < 20) return (b & c) | ((~b) & d); 1838 if (t < 40) return b ^ c ^ d; 1839 if (t < 60) return (b & c) | (b & d) | (c & d); 1840 return b ^ c ^ d; 1841 } 1842 1843 /* 1844 * Determine the appropriate additive constant for the current iteration 1845 */ 1846 function sha1_kt(t) { 1847 return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 : (t < 60) ? -1894007588 : -899497514; 1848 } 1849 1850 /* 1851 * Calculate the HMAC-SHA1 of a key and some data 1852 */ 1853 function core_hmac_sha1(key, data) { 1854 var bkey = str2binb(key); 1855 if (bkey.length > 16) bkey = core_sha1(bkey, key.length * chrsz); 1856 1857 var ipad = Array(16), 1858 opad = Array(16); 1859 for (var i = 0; i < 16; i++) { 1860 ipad[i] = bkey[i] ^ 0x36363636; 1861 opad[i] = bkey[i] ^ 0x5C5C5C5C; 1862 } 1863 1864 var hash = core_sha1(ipad.concat(str2binb(data)), 512 + data.length * chrsz); 1865 return core_sha1(opad.concat(hash), 512 + 160); 1866 } 1867 1868 /* 1869 * Add integers, wrapping at 2^32. This uses 16-bit operations internally 1870 * to work around bugs in some JS interpreters. 1871 */ 1872 function safe_add(x, y) { 1873 var lsw = (x & 0xFFFF) + (y & 0xFFFF); 1874 var msw = (x >> 16) + (y >> 16) + (lsw >> 16); 1875 return (msw << 16) | (lsw & 0xFFFF); 1876 } 1877 1878 /* 1879 * Bitwise rotate a 32-bit number to the left. 1880 */ 1881 function rol(num, cnt) { 1882 return (num << cnt) | (num >>> (32 - cnt)); 1883 } 1884 1885 /* 1886 * Convert an 8-bit or 16-bit string to an array of big-endian words 1887 * In 8-bit function, characters >255 have their hi-byte silently ignored. 1888 */ 1889 function str2binb(str) { 1890 var bin = Array(); 1891 var mask = (1 << chrsz) - 1; 1892 for (var i = 0; i < str.length * chrsz; i += chrsz) 1893 bin[i >> 5] |= (str.charCodeAt(i / chrsz) & mask) << (24 - i % 32); 1894 return bin; 1895 } 1896 1897 /* 1898 * Convert an array of big-endian words to a string 1899 */ 1900 function binb2str(bin) { 1901 var str = ""; 1902 var mask = (1 << chrsz) - 1; 1903 for (var i = 0; i < bin.length * 32; i += chrsz) 1904 str += String.fromCharCode((bin[i >> 5] >>> (24 - i % 32)) & mask); 1905 return str; 1906 } 1907 1908 /* 1909 * Convert an array of big-endian words to a hex string. 1910 */ 1911 function binb2hex(binarray) { 1912 var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; 1913 var str = ""; 1914 for (var i = 0; i < binarray.length * 4; i++) { 1915 str += hex_tab.charAt((binarray[i >> 2] >> ((3 - i % 4) * 8 + 4)) & 0xF) + hex_tab.charAt((binarray[i >> 2] >> ((3 - i % 4) * 8)) & 0xF); 1916 } 1917 return str; 1918 } 1919 1920 /* 1921 * Convert an array of big-endian words to a base-64 string 1922 */ 1923 function binb2b64(binarray) { 1924 var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; 1925 var str = ""; 1926 for (var i = 0; i < binarray.length * 4; i += 3) { 1927 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); 1928 for (var j = 0; j < 4; j++) { 1929 if (i * 8 + j * 6 > binarray.length * 32) str += b64pad; 1930 else str += tab.charAt((triplet >> 6 * (3 - j)) & 0x3F); 1931 } 1932 } 1933 return str; 1934 }
到这一步,获取列表已经完全没有问题了,接下来获取详情页,详情页其实只需要一个参数【文书ID】,获取列表页的时候返回的文书ID是Base64编码的,解码后发现是密文,查找JS发现是通过AES加密
//增加7道爬虫防御 段智峰 20180807 function Navi(id, keyword) { var unzipid = unzip(id); try { var realid = com.str.Decrypt(unzipid); if (realid == "") { setTimeout("Navi('" + id + "','" + keyword + "')", 1000); } else { var url = "/content/content?DocID=" + realid + "&KeyWord=" + keyword; openWin(url); } } catch (ex) { setTimeout("Navi('" + id + "','" + keyword + "')", 1000); } }
这个是网站的解密方法,查看AES发现 KEY和IV居然都是明文写的,直接解密,发现解密不了,打断点调试才发现原来明文写死的KEY是假的,只是烟雾弹,真正的KEY是动态生成的,搞定这个KEY搞了好久,这里就不贴代码了,如果有需要的朋友可以联系我,可以有偿提供解密KEY的代码以及找到KEY的思路。