diff --git "a/23-345円256円211円345円261円205円345円256円242円345円257円206円347円240円201円345円212円240円345円257円206円347円240円264円350円247円243円/345円256円211円345円261円205円345円256円242円.js" "b/23-345円256円211円345円261円205円345円256円242円345円257円206円347円240円201円345円212円240円345円257円206円347円240円264円350円247円243円/345円256円211円345円261円205円345円256円242円.js" new file mode 100644 index 0000000..7e05474 --- /dev/null +++ "b/23-345円256円211円345円261円205円345円256円242円345円257円206円347円240円201円345円212円240円345円257円206円347円240円264円350円247円243円/345円256円211円345円261円205円345円256円242円.js" @@ -0,0 +1,663 @@ +navigator = { + // WT-JS_DEBUG + appCodeName: "Mozilla", + appMinorVersion: "0", + appName: "Netscape", + appVersion: "5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; InfoPath.3; rv:11.0) like Gecko", + browserLanguage: "zh-CN", + cookieEnabled: true, + cpuClass: "x86", + language: "zh-CN", + maxTouchPoints: 0, + msManipulationViewsEnabled: true, + msMaxTouchPoints: 0, + msPointerEnabled: true, + onLine: true, + platform: "Win32", + pointerEnabled: true, + product: "Gecko", + systemLanguage: "zh-CN", + userAgent: "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; InfoPath.3; rv:11.0) like Gecko", + userLanguage: "zh-CN", + vendor: "", + vendorSub: "", + webdriver: false +}, window = this, window.navigator = navigator; + + + if (typeof window.RSAUtils === 'undefined') + var RSAUtils = window.RSAUtils = {}; + var biRadixBase = 2; + var biRadixBits = 16; + var bitsPerDigit = biRadixBits; + var biRadix = 1 << 16; + var biHalfRadix = biRadix>>> 1; + var biRadixSquared = biRadix * biRadix; + var maxDigitVal = biRadix - 1; + var maxInteger = 9999999999999998; + var maxDigits; + var ZERO_ARRAY; + var bigZero, bigOne; + var BigInt = window.BigInt = function(flag) { + if (typeof flag == "boolean" && flag == true) { + this.digits = null + } else { + this.digits = ZERO_ARRAY.slice(0) + } + this.isNeg = false + } + ; + RSAUtils.setMaxDigits = function(value) { + maxDigits = value; + ZERO_ARRAY = new Array(maxDigits); + for (var iza = 0; iza < ZERO_ARRAY.length; iza++) + ZERO_ARRAY[iza] = 0; + bigZero = new BigInt(); + bigOne = new BigInt(); + bigOne.digits[0] = 1 + } + ; + RSAUtils.setMaxDigits(20); + var dpl10 = 15; + RSAUtils.biFromNumber = function(i) { + var result = new BigInt(); + result.isNeg = i < 0; + i = Math.abs(i); + var j = 0; + while (i> 0) { + result.digits[j++] = i & maxDigitVal; + i = Math.floor(i / biRadix) + } + return result + } + ; + var lr10 = RSAUtils.biFromNumber(1000000000000000); + RSAUtils.biFromDecimal = function(s) { + var isNeg = s.charAt(0) == '-'; + var i = isNeg ? 1 : 0; + var result; + while (i < s.length && s.charAt(i) == '0') + ++i; + if (i == s.length) { + result = new BigInt() + } else { + var digitCount = s.length - i; + var fgl = digitCount % dpl10; + if (fgl == 0) + fgl = dpl10; + result = RSAUtils.biFromNumber(Number(s.substr(i, fgl))); + i += fgl; + while (i < s.length) { + result = RSAUtils.biAdd(RSAUtils.biMultiply(result, lr10), RSAUtils.biFromNumber(Number(s.substr(i, dpl10)))); + i += dpl10 + } + result.isNeg = isNeg + } + return result + } + ; + RSAUtils.biCopy = function(bi) { + var result = new BigInt(true); + result.digits = bi.digits.slice(0); + result.isNeg = bi.isNeg; + return result + } + ; + RSAUtils.reverseStr = function(s) { + var result = ""; + for (var i = s.length - 1; i> -1; --i) { + result += s.charAt(i) + } + return result + } + ; + var hexatrigesimalToChar = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']; + RSAUtils.biToString = function(x, radix) { + var b = new BigInt(); + b.digits[0] = radix; + var qr = RSAUtils.biDivideModulo(x, b); + var result = hexatrigesimalToChar[qr[1].digits[0]]; + while (RSAUtils.biCompare(qr[0], bigZero) == 1) { + qr = RSAUtils.biDivideModulo(qr[0], b); + digit = qr[1].digits[0]; + result += hexatrigesimalToChar[qr[1].digits[0]] + } + return (x.isNeg ? "-" : "") + RSAUtils.reverseStr(result) + } + ; + RSAUtils.biToDecimal = function(x) { + var b = new BigInt(); + b.digits[0] = 10; + var qr = RSAUtils.biDivideModulo(x, b); + var result = String(qr[1].digits[0]); + while (RSAUtils.biCompare(qr[0], bigZero) == 1) { + qr = RSAUtils.biDivideModulo(qr[0], b); + result += String(qr[1].digits[0]) + } + return (x.isNeg ? "-" : "") + RSAUtils.reverseStr(result) + } + ; + var hexToChar = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f']; + RSAUtils.digitToHex = function(n) { + var mask = 0xf; + var result = ""; + for (i = 0; i < 4; ++i) { + result += hexToChar[n & mask]; + n>>>= 4 + } + return RSAUtils.reverseStr(result) + } + ; + RSAUtils.biToHex = function(x) { + var result = ""; + var n = RSAUtils.biHighIndex(x); + for (var i = RSAUtils.biHighIndex(x); i> -1; --i) { + result += RSAUtils.digitToHex(x.digits[i]) + } + return result + } + ; + RSAUtils.charToHex = function(c) { + var ZERO = 48; + var NINE = ZERO + 9; + var littleA = 97; + var littleZ = littleA + 25; + var bigA = 65; + var bigZ = 65 + 25; + var result; + if (c>= ZERO && c <= NINE) { + result = c - ZERO + } else if (c>= bigA && c <= bigZ) { + result = 10 + c - bigA + } else if (c>= littleA && c <= littleZ) { + result = 10 + c - littleA + } else { + result = 0 + } + return result + } + ; + RSAUtils.hexToDigit = function(s) { + var result = 0; + var sl = Math.min(s.length, 4); + for (var i = 0; i < sl; ++i) { + result <<= 4; + result |= RSAUtils.charToHex(s.charCodeAt(i)) + } + return result + } + ; + RSAUtils.biFromHex = function(s) { + var result = new BigInt(); + var sl = s.length; + for (var i = sl, j = 0; i> 0; i -= 4, + ++j) { + result.digits[j] = RSAUtils.hexToDigit(s.substr(Math.max(i - 4, 0), Math.min(i, 4))) + } + return result + } + ; + RSAUtils.biFromString = function(s, radix) { + var isNeg = s.charAt(0) == '-'; + var istop = isNeg ? 1 : 0; + var result = new BigInt(); + var place = new BigInt(); + place.digits[0] = 1; + for (var i = s.length - 1; i>= istop; i--) { + var c = s.charCodeAt(i); + var digit = RSAUtils.charToHex(c); + var biDigit = RSAUtils.biMultiplyDigit(place, digit); + result = RSAUtils.biAdd(result, biDigit); + place = RSAUtils.biMultiplyDigit(place, radix) + } + result.isNeg = isNeg; + return result + } + ; + RSAUtils.biDump = function(b) { + return (b.isNeg ? "-" : "") + b.digits.join(" ") + } + ; + RSAUtils.biAdd = function(x, y) { + var result; + if (x.isNeg != y.isNeg) { + y.isNeg = !y.isNeg; + result = RSAUtils.biSubtract(x, y); + y.isNeg = !y.isNeg + } else { + result = new BigInt(); + var c = 0; + var n; + for (var i = 0; i < x.digits.length; ++i) { + n = x.digits[i] + y.digits[i] + c; + result.digits[i] = n % biRadix; + c = Number(n>= biRadix) + } + result.isNeg = x.isNeg + } + return result + } + ; + RSAUtils.biSubtract = function(x, y) { + var result; + if (x.isNeg != y.isNeg) { + y.isNeg = !y.isNeg; + result = RSAUtils.biAdd(x, y); + y.isNeg = !y.isNeg + } else { + result = new BigInt(); + var n, c; + c = 0; + for (var i = 0; i < x.digits.length; ++i) { + n = x.digits[i] - y.digits[i] + c; + result.digits[i] = n % biRadix; + if (result.digits[i] < 0) + result.digits[i] += biRadix; + c = 0 - Number(n < 0) + } + if (c == -1) { + c = 0; + for (var i = 0; i < x.digits.length; ++i) { + n = 0 - result.digits[i] + c; + result.digits[i] = n % biRadix; + if (result.digits[i] < 0) + result.digits[i] += biRadix; + c = 0 - Number(n < 0) + } + result.isNeg = !x.isNeg + } else { + result.isNeg = x.isNeg + } + } + return result + } + ; + RSAUtils.biHighIndex = function(x) { + var result = x.digits.length - 1; + while (result> 0 && x.digits[result] == 0) + --result; + return result + } + ; + RSAUtils.biNumBits = function(x) { + var n = RSAUtils.biHighIndex(x); + var d = x.digits[n]; + var m = (n + 1) * bitsPerDigit; + var result; + for (result = m; result> m - bitsPerDigit; --result) { + if ((d & 0x8000) != 0) + break; + d <<= 1 + } + return result + } + ; + RSAUtils.biMultiply = function(x, y) { + var result = new BigInt(); + var c; + var n = RSAUtils.biHighIndex(x); + var t = RSAUtils.biHighIndex(y); + var u, uv, k; + for (var i = 0; i <= t; ++i) { + c = 0; + k = i; + for (j = 0; j <= n; ++j, + ++k) { + uv = result.digits[k] + x.digits[j] * y.digits[i] + c; + result.digits[k] = uv & maxDigitVal; + c = uv>>> biRadixBits + } + result.digits[i + n + 1] = c + } + result.isNeg = x.isNeg != y.isNeg; + return result + } + ; + RSAUtils.biMultiplyDigit = function(x, y) { + var n, c, uv; + result = new BigInt(); + n = RSAUtils.biHighIndex(x); + c = 0; + for (var j = 0; j <= n; ++j) { + uv = result.digits[j] + x.digits[j] * y + c; + result.digits[j] = uv & maxDigitVal; + c = uv>>> biRadixBits + } + result.digits[1 + n] = c; + return result + } + ; + RSAUtils.arrayCopy = function(src, srcStart, dest, destStart, n) { + var m = Math.min(srcStart + n, src.length); + for (var i = srcStart, j = destStart; i < m; ++i, + ++j) { + dest[j] = src[i] + } + } + ; + var highBitMasks = [0x0000, 0x8000, 0xC000, 0xE000, 0xF000, 0xF800, 0xFC00, 0xFE00, 0xFF00, 0xFF80, 0xFFC0, 0xFFE0, 0xFFF0, 0xFFF8, 0xFFFC, 0xFFFE, 0xFFFF]; + RSAUtils.biShiftLeft = function(x, n) { + var digitCount = Math.floor(n / bitsPerDigit); + var result = new BigInt(); + RSAUtils.arrayCopy(x.digits, 0, result.digits, digitCount, result.digits.length - digitCount); + var bits = n % bitsPerDigit; + var rightBits = bitsPerDigit - bits; + for (var i = result.digits.length - 1, i1 = i - 1; i> 0; --i, + --i1) { + result.digits[i] = ((result.digits[i] << bits) & maxDigitVal) | ((result.digits[i1] & highBitMasks[bits])>>> (rightBits)) + } + result.digits[0] = ((result.digits[i] << bits) & maxDigitVal); + result.isNeg = x.isNeg; + return result + } + ; + var lowBitMasks = [0x0000, 0x0001, 0x0003, 0x0007, 0x000F, 0x001F, 0x003F, 0x007F, 0x00FF, 0x01FF, 0x03FF, 0x07FF, 0x0FFF, 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF]; + RSAUtils.biShiftRight = function(x, n) { + var digitCount = Math.floor(n / bitsPerDigit); + var result = new BigInt(); + RSAUtils.arrayCopy(x.digits, digitCount, result.digits, 0, x.digits.length - digitCount); + var bits = n % bitsPerDigit; + var leftBits = bitsPerDigit - bits; + for (var i = 0, i1 = i + 1; i < result.digits.length - 1; ++i, + ++i1) { + result.digits[i] = (result.digits[i]>>> bits) | ((result.digits[i1] & lowBitMasks[bits]) << leftBits) + } + result.digits[result.digits.length - 1]>>>= bits; + result.isNeg = x.isNeg; + return result + } + ; + RSAUtils.biMultiplyByRadixPower = function(x, n) { + var result = new BigInt(); + RSAUtils.arrayCopy(x.digits, 0, result.digits, n, result.digits.length - n); + return result + } + ; + RSAUtils.biDivideByRadixPower = function(x, n) { + var result = new BigInt(); + RSAUtils.arrayCopy(x.digits, n, result.digits, 0, result.digits.length - n); + return result + } + ; + RSAUtils.biModuloByRadixPower = function(x, n) { + var result = new BigInt(); + RSAUtils.arrayCopy(x.digits, 0, result.digits, 0, n); + return result + } + ; + RSAUtils.biCompare = function(x, y) { + if (x.isNeg != y.isNeg) { + return 1 - 2 * Number(x.isNeg) + } + for (var i = x.digits.length - 1; i>= 0; --i) { + if (x.digits[i] != y.digits[i]) { + if (x.isNeg) { + return 1 - 2 * Number(x.digits[i]> y.digits[i]) + } else { + return 1 - 2 * Number(x.digits[i] < y.digits[i]) + } + } + } + return 0 + } + ; + RSAUtils.biDivideModulo = function(x, y) { + var nb = RSAUtils.biNumBits(x); + var tb = RSAUtils.biNumBits(y); + var origYIsNeg = y.isNeg; + var q, r; + if (nb < tb) { + if (x.isNeg) { + q = RSAUtils.biCopy(bigOne); + q.isNeg = !y.isNeg; + x.isNeg = false; + y.isNeg = false; + r = biSubtract(y, x); + x.isNeg = true; + y.isNeg = origYIsNeg + } else { + q = new BigInt(); + r = RSAUtils.biCopy(x) + } + return [q, r] + } + q = new BigInt(); + r = x; + var t = Math.ceil(tb / bitsPerDigit) - 1; + var lambda = 0; + while (y.digits[t] < biHalfRadix) { + y = RSAUtils.biShiftLeft(y, 1); + ++lambda; + ++tb; + t = Math.ceil(tb / bitsPerDigit) - 1 + } + r = RSAUtils.biShiftLeft(r, lambda); + nb += lambda; + var n = Math.ceil(nb / bitsPerDigit) - 1; + var b = RSAUtils.biMultiplyByRadixPower(y, n - t); + while (RSAUtils.biCompare(r, b) != -1) { + ++q.digits[n - t]; + r = RSAUtils.biSubtract(r, b) + } + for (var i = n; i> t; --i) { + var ri = (i>= r.digits.length) ? 0 : r.digits[i]; + var ri1 = (i - 1>= r.digits.length) ? 0 : r.digits[i - 1]; + var ri2 = (i - 2>= r.digits.length) ? 0 : r.digits[i - 2]; + var yt = (t>= y.digits.length) ? 0 : y.digits[t]; + var yt1 = (t - 1>= y.digits.length) ? 0 : y.digits[t - 1]; + if (ri == yt) { + q.digits[i - t - 1] = maxDigitVal + } else { + q.digits[i - t - 1] = Math.floor((ri * biRadix + ri1) / yt) + } + var c1 = q.digits[i - t - 1] * ((yt * biRadix) + yt1); + var c2 = (ri * biRadixSquared) + ((ri1 * biRadix) + ri2); + while (c1> c2) { + --q.digits[i - t - 1]; + c1 = q.digits[i - t - 1] * ((yt * biRadix) | yt1); + c2 = (ri * biRadix * biRadix) + ((ri1 * biRadix) + ri2) + } + b = RSAUtils.biMultiplyByRadixPower(y, i - t - 1); + r = RSAUtils.biSubtract(r, RSAUtils.biMultiplyDigit(b, q.digits[i - t - 1])); + if (r.isNeg) { + r = RSAUtils.biAdd(r, b); + --q.digits[i - t - 1] + } + } + r = RSAUtils.biShiftRight(r, lambda); + q.isNeg = x.isNeg != origYIsNeg; + if (x.isNeg) { + if (origYIsNeg) { + q = RSAUtils.biAdd(q, bigOne) + } else { + q = RSAUtils.biSubtract(q, bigOne) + } + y = RSAUtils.biShiftRight(y, lambda); + r = RSAUtils.biSubtract(y, r) + } + if (r.digits[0] == 0 && RSAUtils.biHighIndex(r) == 0) + r.isNeg = false; + return [q, r] + } + ; + RSAUtils.biDivide = function(x, y) { + return RSAUtils.biDivideModulo(x, y)[0] + } + ; + RSAUtils.biModulo = function(x, y) { + return RSAUtils.biDivideModulo(x, y)[1] + } + ; + RSAUtils.biMultiplyMod = function(x, y, m) { + return RSAUtils.biModulo(RSAUtils.biMultiply(x, y), m) + } + ; + RSAUtils.biPow = function(x, y) { + var result = bigOne; + var a = x; + while (true) { + if ((y & 1) != 0) + result = RSAUtils.biMultiply(result, a); + y>>= 1; + if (y == 0) + break; + a = RSAUtils.biMultiply(a, a) + } + return result + } + ; + RSAUtils.biPowMod = function(x, y, m) { + var result = bigOne; + var a = x; + var k = y; + while (true) { + if ((k.digits[0] & 1) != 0) + result = RSAUtils.biMultiplyMod(result, a, m); + k = RSAUtils.biShiftRight(k, 1); + if (k.digits[0] == 0 && RSAUtils.biHighIndex(k) == 0) + break; + a = RSAUtils.biMultiplyMod(a, a, m) + } + return result + } + ; + window.BarrettMu = function(m) { + this.modulus = RSAUtils.biCopy(m); + this.k = RSAUtils.biHighIndex(this.modulus) + 1; + var b2k = new BigInt(); + b2k.digits[2 * this.k] = 1; + this.mu = RSAUtils.biDivide(b2k, this.modulus); + this.bkplus1 = new BigInt(); + this.bkplus1.digits[this.k + 1] = 1; + this.modulo = BarrettMu_modulo; + this.multiplyMod = BarrettMu_multiplyMod; + this.powMod = BarrettMu_powMod + } + ; + function BarrettMu_modulo(x) { + var $dmath = RSAUtils; + var q1 = $dmath.biDivideByRadixPower(x, this.k - 1); + var q2 = $dmath.biMultiply(q1, this.mu); + var q3 = $dmath.biDivideByRadixPower(q2, this.k + 1); + var r1 = $dmath.biModuloByRadixPower(x, this.k + 1); + var r2term = $dmath.biMultiply(q3, this.modulus); + var r2 = $dmath.biModuloByRadixPower(r2term, this.k + 1); + var r = $dmath.biSubtract(r1, r2); + if (r.isNeg) { + r = $dmath.biAdd(r, this.bkplus1) + } + var rgtem = $dmath.biCompare(r, this.modulus)>= 0; + while (rgtem) { + r = $dmath.biSubtract(r, this.modulus); + rgtem = $dmath.biCompare(r, this.modulus)>= 0 + } + return r + } + function BarrettMu_multiplyMod(x, y) { + var xy = RSAUtils.biMultiply(x, y); + return this.modulo(xy) + } + function BarrettMu_powMod(x, y) { + var result = new BigInt(); + result.digits[0] = 1; + var a = x; + var k = y; + while (true) { + if ((k.digits[0] & 1) != 0) + result = this.multiplyMod(result, a); + k = RSAUtils.biShiftRight(k, 1); + if (k.digits[0] == 0 && RSAUtils.biHighIndex(k) == 0) + break; + a = this.multiplyMod(a, a) + } + return result + } + var RSAKeyPair = function(encryptionExponent, decryptionExponent, modulus) { + var $dmath = RSAUtils; + this.e = $dmath.biFromHex(encryptionExponent); + this.d = $dmath.biFromHex(decryptionExponent); + this.m = $dmath.biFromHex(modulus); + this.chunkSize = 2 * $dmath.biHighIndex(this.m); + this.radix = 16; + this.barrett = new window.BarrettMu(this.m) + }; + RSAUtils.getKeyPair = function(encryptionExponent, decryptionExponent, modulus) { + return new RSAKeyPair(encryptionExponent,decryptionExponent,modulus) + } + ; + if (typeof window.twoDigit === 'undefined') { + window.twoDigit = function(n) { + return (n < 10 ? "0" : "") + String(n) + } + } + RSAUtils.encryptedString = function(key, s) { + var a = []; + var sl = s.length; + var i = 0; + while (i < sl) { + a[i] = s.charCodeAt(i); + i++ + } + while (a.length % key.chunkSize != 0) { + a[i++] = 0 + } + var al = a.length; + var result = ""; + var j, k, block; + for (i = 0; i < al; i += key.chunkSize) { + block = new BigInt(); + j = 0; + for (k = i; k < i + key.chunkSize; ++j) { + block.digits[j] = a[k++]; + block.digits[j] += a[k++] << 8 + } + var crypt = key.barrett.powMod(block, key.e); + var text = key.radix == 16 ? RSAUtils.biToHex(crypt) : RSAUtils.biToString(crypt, key.radix); + result += text + " " + } + return result.substring(0, result.length - 1) + } + ; + RSAUtils.decryptedString = function(key, s) { + var blocks = s.split(" "); + var result = ""; + var i, j, block; + for (i = 0; i < blocks.length; ++i) { + var bi; + if (key.radix == 16) { + bi = RSAUtils.biFromHex(blocks[i]) + } else { + bi = RSAUtils.biFromString(blocks[i], key.radix) + } + block = key.barrett.powMod(bi, key.d); + for (j = 0; j <= RSAUtils.biHighIndex(block); ++j) { + result += String.fromCharCode(block.digits[j] & 255, block.digits[j]>> 8) + } + } + if (result.charCodeAt(result.length - 1) == 0) { + result = result.substring(0, result.length - 1) + } + return result + } + ; + RSAUtils.setMaxDigits(130) + + + +function encryptString(str, e, m) { + var key = RSAUtils.getKeyPair(e, '', m); + return RSAUtils.encryptedString(key, str) +} + + +function encryptPassWord(e) { + var rsaModulus = "008baf14121377fc76eaf7794b8a8af17085628c3590df47e6534574efcfd81ef8635fcdc67d141c15f51649a89533df0db839331e30b8f8e4440ebf7ccbcc494f4ba18e9f492534b8aafc1b1057429ac851d3d9eb66e86fce1b04527c7b95a2431b07ea277cde2365876e2733325df04389a9d891c5d36b7bc752140db74cb69f"; + var rsaExponent = '010001'; + var n = this, + o = 1411093327735 - (new Date).getTime(), + i = (new Date).getTime() + o; + return encryptString(i + encodeURIComponent(e), rsaExponent, rsaModulus) +} + + +console.log(encryptPassWord('666666')) \ No newline at end of file diff --git "a/24-346円234円211円350円265円236円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/346円234円211円350円265円236円351円252円214円350円257円201円347円240円201円.js" "b/24-346円234円211円350円265円236円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/346円234円211円350円265円236円351円252円214円350円257円201円347円240円201円.js" new file mode 100644 index 0000000..22d0397 --- /dev/null +++ "b/24-346円234円211円350円265円236円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/346円234円211円350円265円236円351円252円214円350円257円201円347円240円201円.js" @@ -0,0 +1,720 @@ +var CryptoJS = CryptoJS || (function (Math, undefined) { + var C = {}; + var C_lib = C.lib = {}; + var Base = C_lib.Base = (function () { + function F() {}; + return { + extend: function (overrides) { + F.prototype = this; + var subtype = new F(); + if (overrides) { + subtype.mixIn(overrides); + } + if (!subtype.hasOwnProperty('init') || this.init === subtype.init) { + subtype.init = function () { + subtype.$super.init.apply(this, arguments); + }; + } + subtype.init.prototype = subtype; + subtype.$super = this; + return subtype; + }, create: function () { + var instance = this.extend(); + instance.init.apply(instance, arguments); + return instance; + }, init: function () {}, mixIn: function (properties) { + for (var propertyName in properties) { + if (properties.hasOwnProperty(propertyName)) { + this[propertyName] = properties[propertyName]; + } + } + if (properties.hasOwnProperty('toString')) { + this.toString = properties.toString; + } + }, clone: function () { + return this.init.prototype.extend(this); + } + }; + }()); + var WordArray = C_lib.WordArray = Base.extend({ + init: function (words, sigBytes) { + words = this.words = words || []; + if (sigBytes != undefined) { + this.sigBytes = sigBytes; + } else { + this.sigBytes = words.length * 4; + } + }, toString: function (encoder) { + return (encoder || Hex).stringify(this); + }, concat: function (wordArray) { + var thisWords = this.words; + var thatWords = wordArray.words; + var thisSigBytes = this.sigBytes; + var thatSigBytes = wordArray.sigBytes; + this.clamp(); + if (thisSigBytes % 4) { + for (var i = 0; i < thatSigBytes; i++) { + var thatByte = (thatWords[i>>> 2]>>> (24 - (i % 4) * 8)) & 0xff; + thisWords[(thisSigBytes + i)>>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8); + } + } else if (thatWords.length> 0xffff) { + for (var i = 0; i < thatSigBytes; i += 4) { + thisWords[(thisSigBytes + i)>>> 2] = thatWords[i>>> 2]; + } + } else { + thisWords.push.apply(thisWords, thatWords); + } + this.sigBytes += thatSigBytes; + return this; + }, clamp: function () { + var words = this.words; + var sigBytes = this.sigBytes; + words[sigBytes>>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8); + words.length = Math.ceil(sigBytes / 4); + }, clone: function () { + var clone = Base.clone.call(this); + clone.words = this.words.slice(0); + return clone; + }, random: function (nBytes) { + var words = []; + var r = (function (m_w) { + var m_w = m_w; + var m_z = 0x3ade68b1; + var mask = 0xffffffff; + return function () { + m_z = (0x9069 * (m_z & 0xFFFF) + (m_z>> 0x10)) & mask; + m_w = (0x4650 * (m_w & 0xFFFF) + (m_w>> 0x10)) & mask; + var result = ((m_z << 0x10) + m_w) & mask; + result /= 0x100000000; + result += 0.5; + return result * (Math.random()> .5 ? 1 : -1); + } + }); + for (var i = 0, rcache; i < nBytes; i += 4) { + var _r = r((rcache || Math.random()) * 0x100000000); + rcache = _r() * 0x3ade67b7; + words.push((_r() * 0x100000000) | 0); + } + return new WordArray.init(words, nBytes); + } + }); + var C_enc = C.enc = {}; + var Hex = C_enc.Hex = { + stringify: function (wordArray) { + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + var hexChars = []; + for (var i = 0; i < sigBytes; i++) { + var bite = (words[i>>> 2]>>> (24 - (i % 4) * 8)) & 0xff; + hexChars.push((bite>>> 4).toString(16)); + hexChars.push((bite & 0x0f).toString(16)); + } + return hexChars.join(''); + }, parse: function (hexStr) { + var hexStrLength = hexStr.length; + var words = []; + for (var i = 0; i < hexStrLength; i += 2) { + words[i>>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4); + } + return new WordArray.init(words, hexStrLength / 2); + } + }; + var Latin1 = C_enc.Latin1 = { + stringify: function (wordArray) { + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + var latin1Chars = []; + for (var i = 0; i < sigBytes; i++) { + var bite = (words[i>>> 2]>>> (24 - (i % 4) * 8)) & 0xff; + latin1Chars.push(String.fromCharCode(bite)); + } + return latin1Chars.join(''); + }, parse: function (latin1Str) { + var latin1StrLength = latin1Str.length; + var words = []; + for (var i = 0; i < latin1StrLength; i++) { + words[i>>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8); + } + return new WordArray.init(words, latin1StrLength); + } + }; + var Utf8 = C_enc.Utf8 = { + stringify: function (wordArray) { + try { + return decodeURIComponent(escape(Latin1.stringify(wordArray))); + } catch (e) { + throw new Error('Malformed UTF-8 data'); + } + }, parse: function (utf8Str) { + return Latin1.parse(unescape(encodeURIComponent(utf8Str))); + } + }; + var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({ + reset: function () { + this._data = new WordArray.init(); + this._nDataBytes = 0; + }, _append: function (data) { + if (typeof data == 'string') { + data = Utf8.parse(data); + } + this._data.concat(data); + this._nDataBytes += data.sigBytes; + }, _process: function (doFlush) { + var data = this._data; + var dataWords = data.words; + var dataSigBytes = data.sigBytes; + var blockSize = this.blockSize; + var blockSizeBytes = blockSize * 4; + var nBlocksReady = dataSigBytes / blockSizeBytes; + if (doFlush) { + nBlocksReady = Math.ceil(nBlocksReady); + } else { + nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0); + } + var nWordsReady = nBlocksReady * blockSize; + var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes); + if (nWordsReady) { + for (var offset = 0; offset < nWordsReady; offset += blockSize) { + this._doProcessBlock(dataWords, offset); + } + var processedWords = dataWords.splice(0, nWordsReady); + data.sigBytes -= nBytesReady; + } + return new WordArray.init(processedWords, nBytesReady); + }, clone: function () { + var clone = Base.clone.call(this); + clone._data = this._data.clone(); + return clone; + }, _minBufferSize: 0 + }); + var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({ + cfg: Base.extend(), + init: function (cfg) { + this.cfg = this.cfg.extend(cfg); + this.reset(); + }, reset: function () { + BufferedBlockAlgorithm.reset.call(this); + this._doReset(); + }, update: function (messageUpdate) { + this._append(messageUpdate); + this._process(); + return this; + }, finalize: function (messageUpdate) { + if (messageUpdate) { + this._append(messageUpdate); + } + var hash = this._doFinalize(); + return hash; + }, blockSize: 512 / 32, + _createHelper: function (hasher) { + return function (message, cfg) { + return new hasher.init(cfg).finalize(message); + }; + }, _createHmacHelper: function (hasher) { + return function (message, key) { + return new C_algo.HMAC.init(hasher, key).finalize(message); + }; + } + }); + var C_algo = C.algo = {}; + return C; +}(Math)); + +(function () { + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var C_enc = C.enc; + var Base64 = C_enc.Base64 = { + stringify: function (wordArray) { + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + var map = this._map; + wordArray.clamp(); + var base64Chars = []; + for (var i = 0; i < sigBytes; i += 3) { + var byte1 = (words[i>>> 2]>>> (24 - (i % 4) * 8)) & 0xff; + var byte2 = (words[(i + 1)>>> 2]>>> (24 - ((i + 1) % 4) * 8)) & 0xff; + var byte3 = (words[(i + 2)>>> 2]>>> (24 - ((i + 2) % 4) * 8)) & 0xff; + var triplet = (byte1 << 16) | (byte2 << 8) | byte3; + for (var j = 0; + (j < 4) && (i + j * 0.75 < sigBytes); j++) { + base64Chars.push(map.charAt((triplet>>> (6 * (3 - j))) & 0x3f)); + } + } + var paddingChar = map.charAt(64); + if (paddingChar) { + while (base64Chars.length % 4) { + base64Chars.push(paddingChar); + } + } + return base64Chars.join(''); + }, parse: function (base64Str) { + var base64StrLength = base64Str.length; + var map = this._map; + var reverseMap = this._reverseMap; + if (!reverseMap) { + reverseMap = this._reverseMap = []; + for (var j = 0; j < map.length; j++) { + reverseMap[map.charCodeAt(j)] = j; + } + } + var paddingChar = map.charAt(64); + if (paddingChar) { + var paddingIndex = base64Str.indexOf(paddingChar); + if (paddingIndex !== -1) { + base64StrLength = paddingIndex; + } + } + return parseLoop(base64Str, base64StrLength, reverseMap); + }, _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' + }; + function parseLoop(base64Str, base64StrLength, reverseMap) { + var words = []; + var nBytes = 0; + for (var i = 0; i < base64StrLength; i++) { + if (i % 4) { + var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2); + var bits2 = reverseMap[base64Str.charCodeAt(i)]>>> (6 - (i % 4) * 2); + words[nBytes>>> 2] |= (bits1 | bits2) << (24 - (nBytes % 4) * 8); + nBytes++; + } + } + return WordArray.create(words, nBytes); + } +}()); + +CryptoJS.lib.Cipher || (function (undefined) { + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var WordArray = C_lib.WordArray; + var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm; + var C_enc = C.enc; + var Utf8 = C_enc.Utf8; + var Base64 = C_enc.Base64; + var C_algo = C.algo; + var EvpKDF = C_algo.EvpKDF; + var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({ + cfg: Base.extend(), + createEncryptor: function (key, cfg) { + return this.create(this._ENC_XFORM_MODE, key, cfg); + }, createDecryptor: function (key, cfg) { + return this.create(this._DEC_XFORM_MODE, key, cfg); + }, init: function (xformMode, key, cfg) { + this.cfg = this.cfg.extend(cfg); + this._xformMode = xformMode; + this._key = key; + this.reset(); + }, reset: function () { + BufferedBlockAlgorithm.reset.call(this); + this._doReset(); + }, process: function (dataUpdate) { + this._append(dataUpdate); + return this._process(); + }, finalize: function (dataUpdate) { + if (dataUpdate) { + this._append(dataUpdate); + } + var finalProcessedData = this._doFinalize(); + return finalProcessedData; + }, keySize: 128 / 32, + ivSize: 128 / 32, + _ENC_XFORM_MODE: 1, + _DEC_XFORM_MODE: 2, + _createHelper: (function () { + function selectCipherStrategy(key) { + if (typeof key == 'string') { + return PasswordBasedCipher; + } else { + return SerializableCipher; + } + } + return function (cipher) { + return { + encrypt: function (message, key, cfg) { + return selectCipherStrategy(key).encrypt(cipher, message, key, cfg); + }, decrypt: function (ciphertext, key, cfg) { + return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg); + } + }; + }; + }()) + }); + var StreamCipher = C_lib.StreamCipher = Cipher.extend({ + _doFinalize: function () { + var finalProcessedBlocks = this._process(!!'flush'); + return finalProcessedBlocks; + }, blockSize: 1 + }); + var C_mode = C.mode = {}; + var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({ + createEncryptor: function (cipher, iv) { + return this.Encryptor.create(cipher, iv); + }, createDecryptor: function (cipher, iv) { + return this.Decryptor.create(cipher, iv); + }, init: function (cipher, iv) { + this._cipher = cipher; + this._iv = iv; + } + }); + var CBC = C_mode.CBC = (function () { + var CBC = BlockCipherMode.extend(); + CBC.Encryptor = CBC.extend({ + processBlock: function (words, offset) { + var cipher = this._cipher; + var blockSize = cipher.blockSize; + xorBlock.call(this, words, offset, blockSize); + cipher.encryptBlock(words, offset); + this._prevBlock = words.slice(offset, offset + blockSize); + } + }); + CBC.Decryptor = CBC.extend({ + processBlock: function (words, offset) { + var cipher = this._cipher; + var blockSize = cipher.blockSize; + var thisBlock = words.slice(offset, offset + blockSize); + cipher.decryptBlock(words, offset); + xorBlock.call(this, words, offset, blockSize); + this._prevBlock = thisBlock; + } + }); + + function xorBlock(words, offset, blockSize) { + var iv = this._iv; + if (iv) { + var block = iv; + this._iv = undefined; + } else { + var block = this._prevBlock; + } + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= block[i]; + } + } + return CBC; + }()); + var C_pad = C.pad = {}; + var Pkcs7 = C_pad.Pkcs7 = { + pad: function (data, blockSize) { + var blockSizeBytes = blockSize * 4; + var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; + var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes; + var paddingWords = []; + for (var i = 0; i < nPaddingBytes; i += 4) { + paddingWords.push(paddingWord); + } + var padding = WordArray.create(paddingWords, nPaddingBytes); + data.concat(padding); + }, unpad: function (data) { + var nPaddingBytes = data.words[(data.sigBytes - 1)>>> 2] & 0xff; + data.sigBytes -= nPaddingBytes; + } + }; + var BlockCipher = C_lib.BlockCipher = Cipher.extend({ + cfg: Cipher.cfg.extend({ + mode: CBC, + padding: Pkcs7 + }), + reset: function () { + Cipher.reset.call(this); + var cfg = this.cfg; + var iv = cfg.iv; + var mode = cfg.mode; + if (this._xformMode == this._ENC_XFORM_MODE) { + var modeCreator = mode.createEncryptor; + } else { + var modeCreator = mode.createDecryptor; + this._minBufferSize = 1; + } if (this._mode && this._mode.__creator == modeCreator) { + this._mode.init(this, iv && iv.words); + } else { + this._mode = modeCreator.call(mode, this, iv && iv.words); + this._mode.__creator = modeCreator; + } + }, _doProcessBlock: function (words, offset) { + this._mode.processBlock(words, offset); + }, _doFinalize: function () { + var padding = this.cfg.padding; + if (this._xformMode == this._ENC_XFORM_MODE) { + padding.pad(this._data, this.blockSize); + var finalProcessedBlocks = this._process(!!'flush'); + } else { + var finalProcessedBlocks = this._process(!!'flush'); + padding.unpad(finalProcessedBlocks); + } + return finalProcessedBlocks; + }, blockSize: 128 / 32 + }); + var CipherParams = C_lib.CipherParams = Base.extend({ + init: function (cipherParams) { + this.mixIn(cipherParams); + }, toString: function (formatter) { + return (formatter || this.formatter).stringify(this); + } + }); + var C_format = C.format = {}; + var OpenSSLFormatter = C_format.OpenSSL = { + stringify: function (cipherParams) { + var ciphertext = cipherParams.ciphertext; + var salt = cipherParams.salt; + if (salt) { + var wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext); + } else { + var wordArray = ciphertext; + } + return wordArray.toString(Base64); + }, parse: function (openSSLStr) { + var ciphertext = Base64.parse(openSSLStr); + var ciphertextWords = ciphertext.words; + if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) { + var salt = WordArray.create(ciphertextWords.slice(2, 4)); + ciphertextWords.splice(0, 4); + ciphertext.sigBytes -= 16; + } + return CipherParams.create({ + ciphertext: ciphertext, + salt: salt + }); + } + }; + var SerializableCipher = C_lib.SerializableCipher = Base.extend({ + cfg: Base.extend({ + format: OpenSSLFormatter + }), + encrypt: function (cipher, message, key, cfg) { + cfg = this.cfg.extend(cfg); + var encryptor = cipher.createEncryptor(key, cfg); + var ciphertext = encryptor.finalize(message); + var cipherCfg = encryptor.cfg; + return CipherParams.create({ + ciphertext: ciphertext, + key: key, + iv: cipherCfg.iv, + algorithm: cipher, + mode: cipherCfg.mode, + padding: cipherCfg.padding, + blockSize: cipher.blockSize, + formatter: cfg.format + }); + }, decrypt: function (cipher, ciphertext, key, cfg) { + cfg = this.cfg.extend(cfg); + ciphertext = this._parse(ciphertext, cfg.format); + var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext); + return plaintext; + }, _parse: function (ciphertext, format) { + if (typeof ciphertext == 'string') { + return format.parse(ciphertext, this); + } else { + return ciphertext; + } + } + }); + var C_kdf = C.kdf = {}; + var OpenSSLKdf = C_kdf.OpenSSL = { + execute: function (password, keySize, ivSize, salt) { + if (!salt) { + salt = WordArray.random(64 / 8); + } + var key = EvpKDF.create({ + keySize: keySize + ivSize + }).compute(password, salt); + var iv = WordArray.create(key.words.slice(keySize), ivSize * 4); + key.sigBytes = keySize * 4; + return CipherParams.create({ + key: key, + iv: iv, + salt: salt + }); + } + }; + var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({ + cfg: SerializableCipher.cfg.extend({ + kdf: OpenSSLKdf + }), + encrypt: function (cipher, message, password, cfg) { + cfg = this.cfg.extend(cfg); + var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize); + cfg.iv = derivedParams.iv; + var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg); + ciphertext.mixIn(derivedParams); + return ciphertext; + }, decrypt: function (cipher, ciphertext, password, cfg) { + cfg = this.cfg.extend(cfg); + ciphertext = this._parse(ciphertext, cfg.format); + var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt); + cfg.iv = derivedParams.iv; + var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg); + return plaintext; + } + }); +}()); + +CryptoJS.pad.Iso10126 = { + pad: function (data, blockSize) { + var blockSizeBytes = blockSize * 4; + var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; + data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1)); + }, unpad: function (data) { + var nPaddingBytes = data.words[(data.sigBytes - 1)>>> 2] & 0xff; + data.sigBytes -= nPaddingBytes; + } +}; + +(function () { + var C = CryptoJS; + var C_lib = C.lib; + var BlockCipher = C_lib.BlockCipher; + var C_algo = C.algo; + var SBOX = []; + var INV_SBOX = []; + var SUB_MIX_0 = []; + var SUB_MIX_1 = []; + var SUB_MIX_2 = []; + var SUB_MIX_3 = []; + var INV_SUB_MIX_0 = []; + var INV_SUB_MIX_1 = []; + var INV_SUB_MIX_2 = []; + var INV_SUB_MIX_3 = []; + (function () { + var d = []; + for (var i = 0; i < 256; i++) { + if (i < 128) { + d[i] = i << 1; + } else { + d[i] = (i << 1) ^ 0x11b; + } + } + var x = 0; + var xi = 0; + for (var i = 0; i < 256; i++) { + var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4); + sx = (sx>>> 8) ^ (sx & 0xff) ^ 0x63; + SBOX[x] = sx; + INV_SBOX[sx] = x; + var x2 = d[x]; + var x4 = d[x2]; + var x8 = d[x4]; + var t = (d[sx] * 0x101) ^ (sx * 0x1010100); + SUB_MIX_0[x] = (t << 24) | (t>>> 8); + SUB_MIX_1[x] = (t << 16) | (t>>> 16); + SUB_MIX_2[x] = (t << 8) | (t>>> 24); + SUB_MIX_3[x] = t; + var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100); + INV_SUB_MIX_0[sx] = (t << 24) | (t>>> 8); + INV_SUB_MIX_1[sx] = (t << 16) | (t>>> 16); + INV_SUB_MIX_2[sx] = (t << 8) | (t>>> 24); + INV_SUB_MIX_3[sx] = t; + if (!x) { + x = xi = 1; + } else { + x = x2 ^ d[d[d[x8 ^ x2]]]; + xi ^= d[d[xi]]; + } + } + }()); + var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]; + var AES = C_algo.AES = BlockCipher.extend({ + _doReset: function () { + if (this._nRounds && this._keyPriorReset === this._key) { + return; + } + var key = this._keyPriorReset = this._key; + var keyWords = key.words; + var keySize = key.sigBytes / 4; + var nRounds = this._nRounds = keySize + 6; + var ksRows = (nRounds + 1) * 4; + var keySchedule = this._keySchedule = []; + for (var ksRow = 0; ksRow < ksRows; ksRow++) { + if (ksRow < keySize) { + keySchedule[ksRow] = keyWords[ksRow]; + } else { + var t = keySchedule[ksRow - 1]; + if (!(ksRow % keySize)) { + t = (t << 8) | (t>>> 24); + t = (SBOX[t>>> 24] << 24) | (SBOX[(t>>> 16) & 0xff] << 16) | (SBOX[(t>>> 8) & 0xff] << 8) | SBOX[t & 0xff]; + t ^= RCON[(ksRow / keySize) | 0] << 24; + } else if (keySize> 6 && ksRow % keySize == 4) { + t = (SBOX[t>>> 24] << 24) | (SBOX[(t>>> 16) & 0xff] << 16) | (SBOX[(t>>> 8) & 0xff] << 8) | SBOX[t & 0xff]; + } + keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t; + } + } + var invKeySchedule = this._invKeySchedule = []; + for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) { + var ksRow = ksRows - invKsRow; + if (invKsRow % 4) { + var t = keySchedule[ksRow]; + } else { + var t = keySchedule[ksRow - 4]; + } if (invKsRow < 4 || ksRow <= 4) { + invKeySchedule[invKsRow] = t; + } else { + invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t>>> 24]] ^ INV_SUB_MIX_1[SBOX[(t>>> 16) & 0xff]] ^ INV_SUB_MIX_2[SBOX[(t>>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]]; + } + } + }, encryptBlock: function (M, offset) { + this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX); + }, decryptBlock: function (M, offset) { + var t = M[offset + 1]; + M[offset + 1] = M[offset + 3]; + M[offset + 3] = t; + this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX); + var t = M[offset + 1]; + M[offset + 1] = M[offset + 3]; + M[offset + 3] = t; + }, _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) { + var nRounds = this._nRounds; + var s0 = M[offset] ^ keySchedule[0]; + var s1 = M[offset + 1] ^ keySchedule[1]; + var s2 = M[offset + 2] ^ keySchedule[2]; + var s3 = M[offset + 3] ^ keySchedule[3]; + var ksRow = 4; + for (var round = 1; round < nRounds; round++) { + var t0 = SUB_MIX_0[s0>>> 24] ^ SUB_MIX_1[(s1>>> 16) & 0xff] ^ SUB_MIX_2[(s2>>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++]; + var t1 = SUB_MIX_0[s1>>> 24] ^ SUB_MIX_1[(s2>>> 16) & 0xff] ^ SUB_MIX_2[(s3>>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++]; + var t2 = SUB_MIX_0[s2>>> 24] ^ SUB_MIX_1[(s3>>> 16) & 0xff] ^ SUB_MIX_2[(s0>>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++]; + var t3 = SUB_MIX_0[s3>>> 24] ^ SUB_MIX_1[(s0>>> 16) & 0xff] ^ SUB_MIX_2[(s1>>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++]; + s0 = t0; + s1 = t1; + s2 = t2; + s3 = t3; + } + var t0 = ((SBOX[s0>>> 24] << 24) | (SBOX[(s1>>> 16) & 0xff] << 16) | (SBOX[(s2>>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]; + var t1 = ((SBOX[s1>>> 24] << 24) | (SBOX[(s2>>> 16) & 0xff] << 16) | (SBOX[(s3>>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]; + var t2 = ((SBOX[s2>>> 24] << 24) | (SBOX[(s3>>> 16) & 0xff] << 16) | (SBOX[(s0>>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]; + var t3 = ((SBOX[s3>>> 24] << 24) | (SBOX[(s0>>> 16) & 0xff] << 16) | (SBOX[(s1>>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]; + M[offset] = t0; + M[offset + 1] = t1; + M[offset + 2] = t2; + M[offset + 3] = t3; + }, keySize: 256 / 32 + }); + C.AES = BlockCipher._createHelper(AES); +}()); + +var key = CryptoJS.enc.Utf8.parse("youzan.com._key_"); +var iv = CryptoJS.enc.Utf8.parse("youzan.com.aesiv"); + +function AES_Encrypt(word) { + var srcs = CryptoJS.enc.Utf8.parse(word); + var encrypted = CryptoJS.AES.encrypt(srcs, key, { + iv: iv, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.Iso10126 + }); + return encrypted.toString(); +} + +function AES_Decrypt(word) { + var srcs = word; + var decrypt = CryptoJS.AES.decrypt(srcs, key, { + iv: iv, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.Iso10126 + }); + return decrypt.toString(CryptoJS.enc.Utf8); +} + +var a = '{"cx":208,"cy":85,"scale":0.5,"slidingEvents":[{"mx":40,"my":206,"ts":1571302858414},{"mx":0,"my":-1,"ts":71},{"mx":1,"my":-1,"ts":28},{"mx":1,"my":0,"ts":8},{"mx":2,"my":0,"ts":8},{"mx":3,"my":0,"ts":8},{"mx":3,"my":0,"ts":13},{"mx":2,"my":0,"ts":3},{"mx":3,"my":-1,"ts":9},{"mx":3,"my":0,"ts":7},{"mx":1,"my":0,"ts":10},{"mx":3,"my":0,"ts":6},{"mx":2,"my":0,"ts":9},{"mx":1,"my":0,"ts":7},{"mx":1,"my":0,"ts":56},{"mx":1,"my":0,"ts":8},{"mx":1,"my":0,"ts":8},{"mx":1,"my":0,"ts":8},{"mx":1,"my":0,"ts":8},{"mx":1,"my":0,"ts":8},{"mx":1,"my":0,"ts":104},{"mx":2,"my":0,"ts":8},{"mx":1,"my":0,"ts":8},{"mx":2,"my":0,"ts":8},{"mx":1,"my":0,"ts":8},{"mx":3,"my":0,"ts":8},{"mx":1,"my":0,"ts":8},{"mx":2,"my":0,"ts":8},{"mx":1,"my":0,"ts":8},{"mx":2,"my":0,"ts":9},{"mx":3,"my":0,"ts":7},{"mx":3,"my":0,"ts":8},{"mx":2,"my":0,"ts":8},{"mx":3,"my":0,"ts":8},{"mx":3,"my":0,"ts":8},{"mx":3,"my":0,"ts":9},{"mx":3,"my":0,"ts":7},{"mx":2,"my":0,"ts":10},{"mx":1,"my":0,"ts":6},{"mx":2,"my":0,"ts":8},{"mx":1,"my":0,"ts":9},{"mx":1,"my":0,"ts":7},{"mx":1,"my":0,"ts":9},{"mx":1,"my":0,"ts":8},{"mx":3,"my":0,"ts":8},{"mx":1,"my":0,"ts":7},{"mx":4,"my":0,"ts":8},{"mx":2,"my":0,"ts":8},{"mx":2,"my":0,"ts":8},{"mx":2,"my":0,"ts":8},{"mx":2,"my":0,"ts":8},{"mx":2,"my":0,"ts":8},{"mx":2,"my":0,"ts":16},{"mx":1,"my":0,"ts":8},{"mx":1,"my":0,"ts":16},{"mx":1,"my":0,"ts":8},{"mx":1,"my":-1,"ts":8},{"mx":3,"my":0,"ts":8},{"mx":1,"my":0,"ts":8},{"mx":3,"my":0,"ts":8},{"mx":1,"my":0,"ts":8},{"mx":2,"my":0,"ts":9},{"mx":2,"my":0,"ts":7},{"mx":2,"my":0,"ts":9},{"mx":2,"my":0,"ts":16},{"mx":1,"my":0,"ts":8},{"mx":1,"my":0,"ts":7},{"mx":2,"my":0,"ts":8},{"mx":1,"my":0,"ts":8},{"mx":3,"my":0,"ts":8},{"mx":3,"my":0,"ts":9},{"mx":2,"my":0,"ts":7},{"mx":3,"my":0,"ts":8},{"mx":2,"my":0,"ts":8},{"mx":1,"my":0,"ts":8},{"mx":2,"my":0,"ts":8},{"mx":1,"my":0,"ts":9},{"mx":1,"my":0,"ts":7},{"mx":1,"my":0,"ts":8},{"mx":1,"my":0,"ts":8},{"mx":2,"my":-2,"ts":8},{"mx":1,"my":0,"ts":8},{"mx":1,"my":0,"ts":8},{"mx":2,"my":0,"ts":8},{"mx":1,"my":0,"ts":8},{"mx":3,"my":0,"ts":8},{"mx":3,"my":0,"ts":9},{"mx":2,"my":-1,"ts":8},{"mx":3,"my":0,"ts":7},{"mx":3,"my":0,"ts":10},{"mx":2,"my":0,"ts":6},{"mx":3,"my":0,"ts":9},{"mx":2,"my":0,"ts":7},{"mx":1,"my":0,"ts":8},{"mx":2,"my":0,"ts":9},{"mx":1,"my":0,"ts":7},{"mx":1,"my":0,"ts":24},{"mx":1,"my":0,"ts":8},{"mx":1,"my":0,"ts":16},{"mx":1,"my":0,"ts":8},{"mx":2,"my":0,"ts":8},{"mx":1,"my":0,"ts":9},{"mx":2,"my":0,"ts":7},{"mx":2,"my":0,"ts":8},{"mx":2,"my":0,"ts":8},{"mx":1,"my":0,"ts":9},{"mx":1,"my":0,"ts":7},{"mx":1,"my":0,"ts":16},{"mx":1,"my":0,"ts":262},{"mx":1,"my":0,"ts":66},{"mx":1,"my":0,"ts":24},{"mx":1,"my":0,"ts":56},{"mx":1,"my":0,"ts":33}]}'; +console.log(AES_Encrypt(a)) \ No newline at end of file diff --git "a/25-345円244円251円346円264円245円350円210円252円347円251円272円/345円244円251円346円264円245円350円210円252円347円251円272円.js" "b/25-345円244円251円346円264円245円350円210円252円347円251円272円/345円244円251円346円264円245円350円210円252円347円251円272円.js" new file mode 100644 index 0000000..3572c2f --- /dev/null +++ "b/25-345円244円251円346円264円245円350円210円252円347円251円272円/345円244円251円346円264円245円350円210円252円347円251円272円.js" @@ -0,0 +1,1520 @@ +navigator = { + // WT-JS_DEBUG + appCodeName: "Mozilla", + appMinorVersion: "0", + appName: "Netscape", + appVersion: "5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; InfoPath.3; rv:11.0) like Gecko", + browserLanguage: "zh-CN", + cookieEnabled: true, + cpuClass: "x86", + language: "zh-CN", + maxTouchPoints: 0, + msManipulationViewsEnabled: true, + msMaxTouchPoints: 0, + msPointerEnabled: true, + onLine: true, + platform: "Win32", + pointerEnabled: true, + product: "Gecko", + systemLanguage: "zh-CN", + userAgent: "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; InfoPath.3; rv:11.0) like Gecko", + userLanguage: "zh-CN", + vendor: "", + vendorSub: "", + webdriver: false +}, window = this, window.navigator = navigator; + + + +var coypJsDk = coypJsDk || function(e, t) { + var r = {} + , n = r.lib = {} + , i = function() {} + , o = n.Base = { + extend: function(e) { + i.prototype = this; + var t = new i; + return e && t.mixIn(e), + t.hasOwnProperty("init") || (t.init = function() { + t.$super.init.apply(this, arguments) + } + ), + t.init.prototype = t, + t.$super = this, + t + }, + create: function() { + var e = this.extend(); + return e.init.apply(e, arguments), + e + }, + init: function() {}, + mixIn: function(e) { + for (var t in e) + e.hasOwnProperty(t) && (this[t] = e[t]); + e.hasOwnProperty("toString") && (this.toString = e.toString) + }, + clone: function() { + return this.init.prototype.extend(this) + } + } + , a = n.WordArray = o.extend({ + init: function(e, r) { + e = this.words = e || [], + this.sigBytes = r != t ? r : 4 * e.length + }, + toString: function(e) { + return (e || c).stringify(this) + }, + concat: function(e) { + var t = this.words + , r = e.words + , n = this.sigBytes; + if (e = e.sigBytes, + this.clamp(), + n % 4) + for (var i = 0; e> i; i++) + t[n + i>>> 2] |= (r[i>>> 2]>>> 24 - 8 * (i % 4) & 255) << 24 - 8 * ((n + i) % 4); + else if (65535 < r.length) + for (i = 0; e> i; i += 4) + t[n + i>>> 2] = r[i>>> 2]; + else + t.push.apply(t, r); + return this.sigBytes += e, + this + }, + clamp: function() { + var t = this.words + , r = this.sigBytes; + t[r>>> 2] &= 4294967295 << 32 - 8 * (r % 4), + t.length = e.ceil(r / 4) + }, + clone: function() { + var e = o.clone.call(this); + return e.words = this.words.slice(0), + e + }, + random: function(t) { + for (var r = [], n = 0; t> n; n += 4) + r.push(4294967296 * e.random() | 0); + return new a.init(r,t) + } + }) + , s = r.enc = {} + , c = s.Hex = { + stringify: function(e) { + var t = e.words; + e = e.sigBytes; + for (var r = [], n = 0; e> n; n++) { + var i = t[n>>> 2]>>> 24 - 8 * (n % 4) & 255; + r.push((i>>> 4).toString(16)), + r.push((15 & i).toString(16)) + } + return r.join("") + }, + parse: function(e) { + for (var t = e.length, r = [], n = 0; t> n; n += 2) + r[n>>> 3] |= parseInt(e.substr(n, 2), 16) << 24 - 4 * (n % 8); + return new a.init(r,t / 2) + } + } + , l = s.Latin1 = { + stringify: function(e) { + var t = e.words; + e = e.sigBytes; + for (var r = [], n = 0; e> n; n++) + r.push(String.fromCharCode(t[n>>> 2]>>> 24 - 8 * (n % 4) & 255)); + return r.join("") + }, + parse: function(e) { + for (var t = e.length, r = [], n = 0; t> n; n++) + r[n>>> 2] |= (255 & e.charCodeAt(n)) << 24 - 8 * (n % 4); + return new a.init(r,t) + } + } + , h = s.Utf8 = { + stringify: function(e) { + try { + return decodeURIComponent(escape(l.stringify(e))) + } catch (t) { + throw Error("Malformed UTF-8 data") + } + }, + parse: function(e) { + return l.parse(unescape(encodeURIComponent(e))) + } + } + , u = n.BufferedBlockAlgorithm = o.extend({ + reset: function() { + this._data = new a.init, + this._nDataBytes = 0 + }, + _append: function(e) { + "string" == typeof e && (e = h.parse(e)), + this._data.concat(e), + this._nDataBytes += e.sigBytes + }, + _process: function(t) { + var r = this._data + , n = r.words + , i = r.sigBytes + , o = this.blockSize + , s = i / (4 * o) + , s = t ? e.ceil(s) : e.max((0 | s) - this._minBufferSize, 0); + if (t = s * o, + i = e.min(4 * t, i), + t) { + for (var c = 0; t> c; c += o) + this._doProcessBlock(n, c); + c = n.splice(0, t), + r.sigBytes -= i + } + return new a.init(c,i) + }, + clone: function() { + var e = o.clone.call(this); + return e._data = this._data.clone(), + e + }, + _minBufferSize: 0 + }); + n.Hasher = u.extend({ + cfg: o.extend(), + init: function(e) { + this.cfg = this.cfg.extend(e), + this.reset() + }, + reset: function() { + u.reset.call(this), + this._doReset() + }, + update: function(e) { + return this._append(e), + this._process(), + this + }, + finalize: function(e) { + return e && this._append(e), + this._doFinalize() + }, + blockSize: 16, + _createHelper: function(e) { + return function(t, r) { + return new e.init(r).finalize(t) + } + }, + _createHmacHelper: function(e) { + return function(t, r) { + return new p.HMAC.init(e,r).finalize(t) + } + } + }); + var p = r.algo = {}; + return r +}(Math) + , process = function(e) { + var t = -979402 + , r = 979402; + _nuz = -705100, + _nux = 705102, + _mlq = 1, + _zmmn = -1, + _xhce = 664917, + _pvaa = -713216, + _tmlq = 713456, + _bbm = 933985, + _lxz = 33853, + _sbx = -93056, + _nnuy = "lit", + _uuz = "map", + _jggu = "it", + _yyf = "function", + _oos = "_", + _hsvuz = "sub", + _isus = "cha", + _paww = "str", + _lyydw = "sp", + _qndkq = "cha", + _muzz = "spl", + _unny = "base", + _heeqc = Object(); + var n = { + _base: "", + _baseTable: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", + _baseTables: [-2, -2, -2, -2, -2, -2, -2, -2, -2, -1, -1, -2, -1, -1, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -1, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, 62, -2, -2, -2, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -2, -2, -2, -2, -2, -2, -2, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -2, -2, -2, -2, -2, -2, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2], + _baseLink: "120112130113220101010101011201011201121313220101", + _basefunction: function(e, t) { + switch (e = 2 * e, + str_1 = this._baseLink[e], + str_2 = this._baseLink[e + 1], + result = "", + result = t.substring(0, str_2), + parseInt(str_1)) { + case _mlq: + this._base += this._baseTables[result]; + break; + case _mlq + _zmmn: + this._base += this._baseTable[result]; + break; + default: + this._base += result + } + return t.substring(this._baseLink[e + 1]) + } + }; + n._baseLink = n._baseLink[_lyydw + _nnuy](""), + n._baseTable = n._baseTable[_muzz + _jggu](""); + for (var i = t + r; i < n._baseLink.length / (_nux + _nuz); i++) + e = n._basefunction(i, e); + return n._base +}; +!function() { + _hqjl = function() { + var e = "rAt" + , t = "rAt" + , r = "gth" + , n = "len" + , i = "str" + , o = "sub" + , a = "str" + , s = "str" + , c = "str" + , l = "sub" + , h = "gth" + , u = "in" + , p = "erse" + , f = "rev" + , d = "lit" + , _ = "sp" + , y = "gth"; + return _nus = -705100, + _cac = 705102, + _lqo = 121771, + _sycv = -447488, + _ptm = 834104, + _qkta = -834104, + _csr = 671648, + _kiq = -671646, + _dwuh = -79794, + _wrp = 518838, + _thb = 716406, + _qax = -716405, + _bgi = 979402, + _tts = -979402, + _vwjb = 715885, + _ebah = 607613, + _hppv = Object(), + function(g, v, m) { + var k, w, b, S, B, x, C, A = "str", D = "sub", R = "cha", z = "str", T = "sub", P = "cha", F = "sub", E = "rAt", K = "cha", j = "sub", O = "rAt", L = "cha", M = "len", I = "jo", H = "len", X = "str", q = "sub", W = 774547, J = -774547, N = -493875, Q = 493875, V = -121770, U = -742534, G = 742535, Y = -439955, $ = 439956, Z = 784672, ee = -784672, te = 447488, re = 884634, ne = -884634, ie = 79795, oe = -518837, ae = -166886, se = 166887, ce = -715883, le = -607612; + if (_hppv[g]) + return _hppv[g]; + for (k = v + m, + w = "", + b = "", + S = g, + g = g[q + X](le + _ebah, g[H + y] - (ce + _vwjb)), + g = g[_ + d]("")[f + p]()[I + u](""), + B = g[M + h], + x = _tts + _bgi; B> x; ++x) + x % k == k - (se + ae) && (b = g[l + c](B - x - (_qax + _thb), k), + b = b[L + O](k - (oe + _wrp)) + b[j + s](ie + _dwuh, k - (_kiq + _csr)) + b[K + E](_qkta + _ptm), + b = b[F + a](ne + re, v), + w += b); + return C = B % k, + C != te + _sycv && (b = g[o + i](ee + Z, C), + b[n + r] != $ + Y && (b = b[P + t](C - (G + U)) + b[T + z](V + _lqo, C - (_cac + _nus)) + b[R + e](Q + N)), + b = b[D + A](J + W, v), + w += b), + _hppv[S] = w, + w + } + }(), + window[_hqjl("yzunzgd", 4, 2)] = process +}(), + window.av_ = "v", + function() { + var e = coypJsDk + , t = e.lib.WordArray; + e.enc.Base64 = { + stringify: function(e) { + var t = e.words + , r = e.sigBytes + , n = this._map; + e.clamp(), + e = []; + for (var i = 0; r> i; i += 3) + for (var o = (t[i>>> 2]>>> 24 - 8 * (i % 4) & 255) << 16 | (t[i + 1>>> 2]>>> 24 - 8 * ((i + 1) % 4) & 255) << 8 | t[i + 2>>> 2]>>> 24 - 8 * ((i + 2) % 4) & 255, a = 0; 4> a && r> i + .75 * a; a++) + e.push(n.charAt(o>>> 6 * (3 - a) & 63)); + if (t = n.charAt(64)) + for (; e.length % 4; ) + e.push(t); + return e.join("") + }, + parse: function(e) { + var r = e.length + , n = this._map + , i = n.charAt(64); + i && (i = e.indexOf(i), + -1 != i && (r = i)); + for (var i = [], o = 0, a = 0; r> a; a++) + if (a % 4) { + var s = n.indexOf(e.charAt(a - 1)) << 2 * (a % 4) + , c = n.indexOf(e.charAt(a))>>> 6 - 2 * (a % 4); + i[o>>> 2] |= (s | c) << 24 - 8 * (o % 4), + o++ + } + return t.create(i, o) + }, + _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" + } + }(), + function(e) { + function t(e, t, r, n, i, o, a) { + return e = e + (t & r | ~t & n) + i + a, + (e << o | e>>> 32 - o) + t + } + function r(e, t, r, n, i, o, a) { + return e = e + (t & n | r & ~n) + i + a, + (e << o | e>>> 32 - o) + t + } + function n(e, t, r, n, i, o, a) { + return e = e + (t ^ r ^ n) + i + a, + (e << o | e>>> 32 - o) + t + } + function i(e, t, r, n, i, o, a) { + return e = e + (r ^ (t | ~n)) + i + a, + (e << o | e>>> 32 - o) + t + } + for (var o = coypJsDk, a = o.lib, s = a.WordArray, c = a.Hasher, a = o.algo, l = [], h = 0; 64> h; h++) + l[h] = 4294967296 * e.abs(e.sin(h + 1)) | 0; + a = a.MD5 = c.extend({ + _doReset: function() { + this._hash = new s.init([1732584193, 4023233417, 2562383102, 271733878]) + }, + _doProcessBlock: function(e, o) { + for (var a = 0; 16> a; a++) { + var s = o + a + , c = e[s]; + e[s] = 16711935 & (c << 8 | c>>> 24) | 4278255360 & (c << 24 | c>>> 8) + } + var a = this._hash.words + , s = e[o + 0] + , c = e[o + 1] + , h = e[o + 2] + , u = e[o + 3] + , p = e[o + 4] + , f = e[o + 5] + , d = e[o + 6] + , _ = e[o + 7] + , y = e[o + 8] + , g = e[o + 9] + , v = e[o + 10] + , m = e[o + 11] + , k = e[o + 12] + , w = e[o + 13] + , b = e[o + 14] + , S = e[o + 15] + , B = a[0] + , x = a[1] + , C = a[2] + , A = a[3] + , B = t(B, x, C, A, s, 7, l[0]) + , A = t(A, B, x, C, c, 12, l[1]) + , C = t(C, A, B, x, h, 17, l[2]) + , x = t(x, C, A, B, u, 22, l[3]) + , B = t(B, x, C, A, p, 7, l[4]) + , A = t(A, B, x, C, f, 12, l[5]) + , C = t(C, A, B, x, d, 17, l[6]) + , x = t(x, C, A, B, _, 22, l[7]) + , B = t(B, x, C, A, y, 7, l[8]) + , A = t(A, B, x, C, g, 12, l[9]) + , C = t(C, A, B, x, v, 17, l[10]) + , x = t(x, C, A, B, m, 22, l[11]) + , B = t(B, x, C, A, k, 7, l[12]) + , A = t(A, B, x, C, w, 12, l[13]) + , C = t(C, A, B, x, b, 17, l[14]) + , x = t(x, C, A, B, S, 22, l[15]) + , B = r(B, x, C, A, c, 5, l[16]) + , A = r(A, B, x, C, d, 9, l[17]) + , C = r(C, A, B, x, m, 14, l[18]) + , x = r(x, C, A, B, s, 20, l[19]) + , B = r(B, x, C, A, f, 5, l[20]) + , A = r(A, B, x, C, v, 9, l[21]) + , C = r(C, A, B, x, S, 14, l[22]) + , x = r(x, C, A, B, p, 20, l[23]) + , B = r(B, x, C, A, g, 5, l[24]) + , A = r(A, B, x, C, b, 9, l[25]) + , C = r(C, A, B, x, u, 14, l[26]) + , x = r(x, C, A, B, y, 20, l[27]) + , B = r(B, x, C, A, w, 5, l[28]) + , A = r(A, B, x, C, h, 9, l[29]) + , C = r(C, A, B, x, _, 14, l[30]) + , x = r(x, C, A, B, k, 20, l[31]) + , B = n(B, x, C, A, f, 4, l[32]) + , A = n(A, B, x, C, y, 11, l[33]) + , C = n(C, A, B, x, m, 16, l[34]) + , x = n(x, C, A, B, b, 23, l[35]) + , B = n(B, x, C, A, c, 4, l[36]) + , A = n(A, B, x, C, p, 11, l[37]) + , C = n(C, A, B, x, _, 16, l[38]) + , x = n(x, C, A, B, v, 23, l[39]) + , B = n(B, x, C, A, w, 4, l[40]) + , A = n(A, B, x, C, s, 11, l[41]) + , C = n(C, A, B, x, u, 16, l[42]) + , x = n(x, C, A, B, d, 23, l[43]) + , B = n(B, x, C, A, g, 4, l[44]) + , A = n(A, B, x, C, k, 11, l[45]) + , C = n(C, A, B, x, S, 16, l[46]) + , x = n(x, C, A, B, h, 23, l[47]) + , B = i(B, x, C, A, s, 6, l[48]) + , A = i(A, B, x, C, _, 10, l[49]) + , C = i(C, A, B, x, b, 15, l[50]) + , x = i(x, C, A, B, f, 21, l[51]) + , B = i(B, x, C, A, k, 6, l[52]) + , A = i(A, B, x, C, u, 10, l[53]) + , C = i(C, A, B, x, v, 15, l[54]) + , x = i(x, C, A, B, c, 21, l[55]) + , B = i(B, x, C, A, y, 6, l[56]) + , A = i(A, B, x, C, S, 10, l[57]) + , C = i(C, A, B, x, d, 15, l[58]) + , x = i(x, C, A, B, w, 21, l[59]) + , B = i(B, x, C, A, p, 6, l[60]) + , A = i(A, B, x, C, m, 10, l[61]) + , C = i(C, A, B, x, h, 15, l[62]) + , x = i(x, C, A, B, g, 21, l[63]); + a[0] = a[0] + B | 0, + a[1] = a[1] + x | 0, + a[2] = a[2] + C | 0, + a[3] = a[3] + A | 0 + }, + _doFinalize: function() { + var t = this._data + , r = t.words + , n = 8 * this._nDataBytes + , i = 8 * t.sigBytes; + r[i>>> 5] |= 128 << 24 - i % 32; + var o = e.floor(n / 4294967296); + for (r[(i + 64>>> 9 << 4) + 15] = 16711935 & (o << 8 | o>>> 24) | 4278255360 & (o << 24 | o>>> 8), + r[(i + 64>>> 9 << 4) + 14] = 16711935 & (n << 8 | n>>> 24) | 4278255360 & (n << 24 | n>>> 8), + t.sigBytes = 4 * (r.length + 1), + this._process(), + t = this._hash, + r = t.words, + n = 0; 4> n; n++) + i = r[n], + r[n] = 16711935 & (i << 8 | i>>> 24) | 4278255360 & (i << 24 | i>>> 8); + return t + }, + clone: function() { + var e = c.clone.call(this); + return e._hash = this._hash.clone(), + e + } + }), + o.MD5 = c._createHelper(a), + o.HmacMD5 = c._createHmacHelper(a) + }(Math); +var born = function() {}; +!function() { + var e = coypJsDk + , t = e.lib + , r = t.Base + , n = t.WordArray + , t = e.algo + , i = t.EvpKDF = r.extend({ + cfg: r.extend({ + keySize: 4, + hasher: t.MD5, + iterations: 1 + }), + init: function(e) { + this.cfg = this.cfg.extend(e) + }, + compute: function(e, t) { + for (var r = this.cfg, i = r.hasher.create(), o = n.create(), a = o.words, s = r.keySize, r = r.iterations; a.length < s; ) { + c && i.update(c); + var c = i.update(e).finalize(t); + i.reset(); + for (var l = 1; r> l; l++) + c = i.finalize(c), + i.reset(); + o.concat(c) + } + return o.sigBytes = 4 * s, + o + } + }); + e.EvpKDF = function(e, t, r) { + return i.create(r).compute(e, t) + } +}(), + window.nvl_ = "al", +coypJsDk.lib.Cipher || function(e) { + var t = coypJsDk + , r = t.lib + , n = r.Base + , i = r.WordArray + , o = r.BufferedBlockAlgorithm + , a = t.enc.Base64 + , s = t.algo.EvpKDF + , c = r.Cipher = o.extend({ + cfg: n.extend(), + createEncryptor: function(e, t) { + return this.create(this._ENC_XFORM_MODE, e, t) + }, + createDecryptor: function(e, t) { + return this.create(this._DEC_XFORM_MODE, e, t) + }, + init: function(e, t, r) { + this.cfg = this.cfg.extend(r), + this._xformMode = e, + this._key = t, + this.reset() + }, + reset: function() { + o.reset.call(this), + this._doReset() + }, + process: function(e) { + return this._append(e), + this._process() + }, + finalize: function(e) { + return e && this._append(e), + this._doFinalize() + }, + keySize: 4, + ivSize: 4, + _ENC_XFORM_MODE: 1, + _DEC_XFORM_MODE: 2, + _createHelper: function(e) { + return { + encrypt: function(t, r, n) { + return ("string" == typeof r ? d : f).encrypt(e, t, r, n) + }, + decrypt: function(t, r, n) { + return ("string" == typeof r ? d : f).decrypt(e, t, r, n) + } + } + } + }); + r.StreamCipher = c.extend({ + _doFinalize: function() { + return this._process(!0) + }, + blockSize: 1 + }); + var l = t.mode = {} + , h = function(t, r, n) { + var i = this._iv; + i ? this._iv = e : i = this._prevBlock; + for (var o = 0; n> o; o++) + t[r + o] ^= i[o] + } + , u = (r.BlockCipherMode = n.extend({ + createEncryptor: function(e, t) { + return this.Encryptor.create(e, t) + }, + createDecryptor: function(e, t) { + return this.Decryptor.create(e, t) + }, + init: function(e, t) { + this._cipher = e, + this._iv = t + } + })).extend(); + u.Encryptor = u.extend({ + processBlock: function(e, t) { + var r = this._cipher + , n = r.blockSize; + h.call(this, e, t, n), + r.encryptBlock(e, t), + this._prevBlock = e.slice(t, t + n) + } + }), + u.Decryptor = u.extend({ + processBlock: function(e, t) { + var r = this._cipher + , n = r.blockSize + , i = e.slice(t, t + n); + r.decryptBlock(e, t), + h.call(this, e, t, n), + this._prevBlock = i + } + }), + l = l.CBC = u, + u = (t.pad = {}).Nopk = { + pad: function(e, t) { + for (var r = 4 * t, r = r - e.sigBytes % r, n = r << 24 | r << 16 | r << 8 | r, o = [], a = 0; r> a; a += 4) + o.push(n); + r = i.create(o, r), + e.concat(r) + }, + unpad: function(e) { + e.sigBytes -= 255 & e.words[e.sigBytes - 1>>> 2] + } + }, + r.BlockCipher = c.extend({ + cfg: c.cfg.extend({ + mode: l, + padding: u + }), + reset: function() { + c.reset.call(this); + var e = this.cfg + , t = e.iv + , e = e.mode; + if (this._xformMode == this._ENC_XFORM_MODE) + var r = e.createEncryptor; + else + r = e.createDecryptor, + this._minBufferSize = 1; + this._mode = r.call(e, this, t && t.words) + }, + _doProcessBlock: function(e, t) { + this._mode.processBlock(e, t) + }, + _doFinalize: function() { + var e = this.cfg.padding; + if (this._xformMode == this._ENC_XFORM_MODE) { + e.pad(this._data, this.blockSize); + var t = this._process(!0) + } else + t = this._process(!0), + e.unpad(t); + return t + }, + blockSize: 4 + }); + var p = r.CipherParams = n.extend({ + init: function(e) { + this.mixIn(e) + }, + toString: function(e) { + return (e || this.formatter).stringify(this) + } + }) + , l = (t.format = {}).OpenSSL = { + stringify: function(e) { + var t = e.ciphertext; + return e = e.salt, + (e ? i.create([1398893684, 1701076831]).concat(e).concat(t) : t).toString(a) + }, + parse: function(e) { + e = a.parse(e); + var t = e.words; + if (1398893684 == t[0] && 1701076831 == t[1]) { + var r = i.create(t.slice(2, 4)); + t.splice(0, 4), + e.sigBytes -= 16 + } + return p.create({ + ciphertext: e, + salt: r + }) + } + } + , f = r.SerializableCipher = n.extend({ + cfg: n.extend({ + format: l + }), + encrypt: function(e, t, r, n) { + n = this.cfg.extend(n); + var i = e.createEncryptor(r, n); + return t = i.finalize(t), + i = i.cfg, + p.create({ + ciphertext: t, + key: r, + iv: i.iv, + algorithm: e, + mode: i.mode, + padding: i.padding, + blockSize: e.blockSize, + formatter: n.format + }) + }, + decrypt: function(e, t, r, n) { + return n = this.cfg.extend(n), + t = this._parse(t, n.format), + e.createDecryptor(r, n).finalize(t.ciphertext) + }, + _parse: function(e, t) { + return "string" == typeof e ? t.parse(e, this) : e + } + }) + , t = (t.kdf = {}).OpenSSL = { + execute: function(e, t, r, n) { + return n || (n = i.random(8)), + e = s.create({ + keySize: t + r + }).compute(e, n), + r = i.create(e.words.slice(t), 4 * r), + e.sigBytes = 4 * t, + p.create({ + key: e, + iv: r, + salt: n + }) + } + } + , d = r.PasswordBasedCipher = f.extend({ + cfg: f.cfg.extend({ + kdf: t + }), + encrypt: function(e, t, r, n) { + return n = this.cfg.extend(n), + r = n.kdf.execute(r, e.keySize, e.ivSize), + n.iv = r.iv, + e = f.encrypt.call(this, e, t, r.key, n), + e.mixIn(r), + e + }, + decrypt: function(e, t, r, n) { + return n = this.cfg.extend(n), + t = this._parse(t, n.format), + r = n.kdf.execute(r, e.keySize, e.ivSize, t.salt), + n.iv = r.iv, + f.decrypt.call(this, e, t, r.key, n) + } + }) +}(), + function() { + function e(e, t) { + var r = (this._lBlock>>> e ^ this._rBlock) & t; + this._rBlock ^= r, + this._lBlock ^= r << e + } + function t(e, t) { + var r = (this._rBlock>>> e ^ this._lBlock) & t; + this._lBlock ^= r, + this._rBlock ^= r << e + } + var r = coypJsDk + , n = r.lib + , i = n.WordArray + , n = n.BlockCipher + , o = r.algo + , a = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4] + , s = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32] + , c = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28] + , l = [{ + 0: 8421888, + 268435456: 32768, + 536870912: 8421378, + 805306368: 2, + 1073741824: 512, + 1342177280: 8421890, + 1610612736: 8389122, + 1879048192: 8388608, + 2147483648: 514, + 2415919104: 8389120, + 2684354560: 33280, + 2952790016: 8421376, + 3221225472: 32770, + 3489660928: 8388610, + 3758096384: 0, + 4026531840: 33282, + 134217728: 0, + 402653184: 8421890, + 671088640: 33282, + 939524096: 32768, + 1207959552: 8421888, + 1476395008: 512, + 1744830464: 8421378, + 2013265920: 2, + 2281701376: 8389120, + 2550136832: 33280, + 2818572288: 8421376, + 3087007744: 8389122, + 3355443200: 8388610, + 3623878656: 32770, + 3892314112: 514, + 4160749568: 8388608, + 1: 32768, + 268435457: 2, + 536870913: 8421888, + 805306369: 8388608, + 1073741825: 8421378, + 1342177281: 33280, + 1610612737: 512, + 1879048193: 8389122, + 2147483649: 8421890, + 2415919105: 8421376, + 2684354561: 8388610, + 2952790017: 33282, + 3221225473: 514, + 3489660929: 8389120, + 3758096385: 32770, + 4026531841: 0, + 134217729: 8421890, + 402653185: 8421376, + 671088641: 8388608, + 939524097: 512, + 1207959553: 32768, + 1476395009: 8388610, + 1744830465: 2, + 2013265921: 33282, + 2281701377: 32770, + 2550136833: 8389122, + 2818572289: 514, + 3087007745: 8421888, + 3355443201: 8389120, + 3623878657: 0, + 3892314113: 33280, + 4160749569: 8421378 + }, { + 0: 1074282512, + 16777216: 16384, + 33554432: 524288, + 50331648: 1074266128, + 67108864: 1073741840, + 83886080: 1074282496, + 100663296: 1073758208, + 117440512: 16, + 134217728: 540672, + 150994944: 1073758224, + 167772160: 1073741824, + 184549376: 540688, + 201326592: 524304, + 218103808: 0, + 234881024: 16400, + 251658240: 1074266112, + 8388608: 1073758208, + 25165824: 540688, + 41943040: 16, + 58720256: 1073758224, + 75497472: 1074282512, + 92274688: 1073741824, + 109051904: 524288, + 125829120: 1074266128, + 142606336: 524304, + 159383552: 0, + 176160768: 16384, + 192937984: 1074266112, + 209715200: 1073741840, + 226492416: 540672, + 243269632: 1074282496, + 260046848: 16400, + 268435456: 0, + 285212672: 1074266128, + 301989888: 1073758224, + 318767104: 1074282496, + 335544320: 1074266112, + 352321536: 16, + 369098752: 540688, + 385875968: 16384, + 402653184: 16400, + 419430400: 524288, + 436207616: 524304, + 452984832: 1073741840, + 469762048: 540672, + 486539264: 1073758208, + 503316480: 1073741824, + 520093696: 1074282512, + 276824064: 540688, + 293601280: 524288, + 310378496: 1074266112, + 327155712: 16384, + 343932928: 1073758208, + 360710144: 1074282512, + 377487360: 16, + 394264576: 1073741824, + 411041792: 1074282496, + 427819008: 1073741840, + 444596224: 1073758224, + 461373440: 524304, + 478150656: 0, + 494927872: 16400, + 511705088: 1074266128, + 528482304: 540672 + }, { + 0: 260, + 1048576: 0, + 2097152: 67109120, + 3145728: 65796, + 4194304: 65540, + 5242880: 67108868, + 6291456: 67174660, + 7340032: 67174400, + 8388608: 67108864, + 9437184: 67174656, + 10485760: 65792, + 11534336: 67174404, + 12582912: 67109124, + 13631488: 65536, + 14680064: 4, + 15728640: 256, + 524288: 67174656, + 1572864: 67174404, + 2621440: 0, + 3670016: 67109120, + 4718592: 67108868, + 5767168: 65536, + 6815744: 65540, + 7864320: 260, + 8912896: 4, + 9961472: 256, + 11010048: 67174400, + 12058624: 65796, + 13107200: 65792, + 14155776: 67109124, + 15204352: 67174660, + 16252928: 67108864, + 16777216: 67174656, + 17825792: 65540, + 18874368: 65536, + 19922944: 67109120, + 20971520: 256, + 22020096: 67174660, + 23068672: 67108868, + 24117248: 0, + 25165824: 67109124, + 26214400: 67108864, + 27262976: 4, + 28311552: 65792, + 29360128: 67174400, + 30408704: 260, + 31457280: 65796, + 32505856: 67174404, + 17301504: 67108864, + 18350080: 260, + 19398656: 67174656, + 20447232: 0, + 21495808: 65540, + 22544384: 67109120, + 23592960: 256, + 24641536: 67174404, + 25690112: 65536, + 26738688: 67174660, + 27787264: 65796, + 28835840: 67108868, + 29884416: 67109124, + 30932992: 67174400, + 31981568: 4, + 33030144: 65792 + }, { + 0: 2151682048, + 65536: 2147487808, + 131072: 4198464, + 196608: 2151677952, + 262144: 0, + 327680: 4198400, + 393216: 2147483712, + 458752: 4194368, + 524288: 2147483648, + 589824: 4194304, + 655360: 64, + 720896: 2147487744, + 786432: 2151678016, + 851968: 4160, + 917504: 4096, + 983040: 2151682112, + 32768: 2147487808, + 98304: 64, + 163840: 2151678016, + 229376: 2147487744, + 294912: 4198400, + 360448: 2151682112, + 425984: 0, + 491520: 2151677952, + 557056: 4096, + 622592: 2151682048, + 688128: 4194304, + 753664: 4160, + 819200: 2147483648, + 884736: 4194368, + 950272: 4198464, + 1015808: 2147483712, + 1048576: 4194368, + 1114112: 4198400, + 1179648: 2147483712, + 1245184: 0, + 1310720: 4160, + 1376256: 2151678016, + 1441792: 2151682048, + 1507328: 2147487808, + 1572864: 2151682112, + 1638400: 2147483648, + 1703936: 2151677952, + 1769472: 4198464, + 1835008: 2147487744, + 1900544: 4194304, + 1966080: 64, + 2031616: 4096, + 1081344: 2151677952, + 1146880: 2151682112, + 1212416: 0, + 1277952: 4198400, + 1343488: 4194368, + 1409024: 2147483648, + 1474560: 2147487808, + 1540096: 64, + 1605632: 2147483712, + 1671168: 4096, + 1736704: 2147487744, + 1802240: 2151678016, + 1867776: 4160, + 1933312: 2151682048, + 1998848: 4194304, + 2064384: 4198464 + }, { + 0: 128, + 4096: 17039360, + 8192: 262144, + 12288: 536870912, + 16384: 537133184, + 20480: 16777344, + 24576: 553648256, + 28672: 262272, + 32768: 16777216, + 36864: 537133056, + 40960: 536871040, + 45056: 553910400, + 49152: 553910272, + 53248: 0, + 57344: 17039488, + 61440: 553648128, + 2048: 17039488, + 6144: 553648256, + 10240: 128, + 14336: 17039360, + 18432: 262144, + 22528: 537133184, + 26624: 553910272, + 30720: 536870912, + 34816: 537133056, + 38912: 0, + 43008: 553910400, + 47104: 16777344, + 51200: 536871040, + 55296: 553648128, + 59392: 16777216, + 63488: 262272, + 65536: 262144, + 69632: 128, + 73728: 536870912, + 77824: 553648256, + 81920: 16777344, + 86016: 553910272, + 90112: 537133184, + 94208: 16777216, + 98304: 553910400, + 102400: 553648128, + 106496: 17039360, + 110592: 537133056, + 114688: 262272, + 118784: 536871040, + 122880: 0, + 126976: 17039488, + 67584: 553648256, + 71680: 16777216, + 75776: 17039360, + 79872: 537133184, + 83968: 536870912, + 88064: 17039488, + 92160: 128, + 96256: 553910272, + 100352: 262272, + 104448: 553910400, + 108544: 0, + 112640: 553648128, + 116736: 16777344, + 120832: 262144, + 124928: 537133056, + 129024: 536871040 + }, { + 0: 268435464, + 256: 8192, + 512: 270532608, + 768: 270540808, + 1024: 268443648, + 1280: 2097152, + 1536: 2097160, + 1792: 268435456, + 2048: 0, + 2304: 268443656, + 2560: 2105344, + 2816: 8, + 3072: 270532616, + 3328: 2105352, + 3584: 8200, + 3840: 270540800, + 128: 270532608, + 384: 270540808, + 640: 8, + 896: 2097152, + 1152: 2105352, + 1408: 268435464, + 1664: 268443648, + 1920: 8200, + 2176: 2097160, + 2432: 8192, + 2688: 268443656, + 2944: 270532616, + 3200: 0, + 3456: 270540800, + 3712: 2105344, + 3968: 268435456, + 4096: 268443648, + 4352: 270532616, + 4608: 270540808, + 4864: 8200, + 5120: 2097152, + 5376: 268435456, + 5632: 268435464, + 5888: 2105344, + 6144: 2105352, + 6400: 0, + 6656: 8, + 6912: 270532608, + 7168: 8192, + 7424: 268443656, + 7680: 270540800, + 7936: 2097160, + 4224: 8, + 4480: 2105344, + 4736: 2097152, + 4992: 268435464, + 5248: 268443648, + 5504: 8200, + 5760: 270540808, + 6016: 270532608, + 6272: 270540800, + 6528: 270532616, + 6784: 8192, + 7040: 2105352, + 7296: 2097160, + 7552: 0, + 7808: 268435456, + 8064: 268443656 + }, { + 0: 1048576, + 16: 33555457, + 32: 1024, + 48: 1049601, + 64: 34604033, + 80: 0, + 96: 1, + 112: 34603009, + 128: 33555456, + 144: 1048577, + 160: 33554433, + 176: 34604032, + 192: 34603008, + 208: 1025, + 224: 1049600, + 240: 33554432, + 8: 34603009, + 24: 0, + 40: 33555457, + 56: 34604032, + 72: 1048576, + 88: 33554433, + 104: 33554432, + 120: 1025, + 136: 1049601, + 152: 33555456, + 168: 34603008, + 184: 1048577, + 200: 1024, + 216: 34604033, + 232: 1, + 248: 1049600, + 256: 33554432, + 272: 1048576, + 288: 33555457, + 304: 34603009, + 320: 1048577, + 336: 33555456, + 352: 34604032, + 368: 1049601, + 384: 1025, + 400: 34604033, + 416: 1049600, + 432: 1, + 448: 0, + 464: 34603008, + 480: 33554433, + 496: 1024, + 264: 1049600, + 280: 33555457, + 296: 34603009, + 312: 1, + 328: 33554432, + 344: 1048576, + 360: 1025, + 376: 34604032, + 392: 33554433, + 408: 34603008, + 424: 0, + 440: 34604033, + 456: 1049601, + 472: 1024, + 488: 33555456, + 504: 1048577 + }, { + 0: 134219808, + 1: 131072, + 2: 134217728, + 3: 32, + 4: 131104, + 5: 134350880, + 6: 134350848, + 7: 2048, + 8: 134348800, + 9: 134219776, + 10: 133120, + 11: 134348832, + 12: 2080, + 13: 0, + 14: 134217760, + 15: 133152, + 2147483648: 2048, + 2147483649: 134350880, + 2147483650: 134219808, + 2147483651: 134217728, + 2147483652: 134348800, + 2147483653: 133120, + 2147483654: 133152, + 2147483655: 32, + 2147483656: 134217760, + 2147483657: 2080, + 2147483658: 131104, + 2147483659: 134350848, + 2147483660: 0, + 2147483661: 134348832, + 2147483662: 134219776, + 2147483663: 131072, + 16: 133152, + 17: 134350848, + 18: 32, + 19: 2048, + 20: 134219776, + 21: 134217760, + 22: 134348832, + 23: 131072, + 24: 0, + 25: 131104, + 26: 134348800, + 27: 134219808, + 28: 134350880, + 29: 133120, + 30: 2080, + 31: 134217728, + 2147483664: 131072, + 2147483665: 2048, + 2147483666: 134348832, + 2147483667: 133152, + 2147483668: 32, + 2147483669: 134348800, + 2147483670: 134217728, + 2147483671: 134219808, + 2147483672: 134350880, + 2147483673: 134217760, + 2147483674: 134219776, + 2147483675: 0, + 2147483676: 133120, + 2147483677: 2080, + 2147483678: 131104, + 2147483679: 134350848 + }] + , h = [483991120, 1058535, 512567407, 10651221, 217723] + , u = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679] + , p = o.DES = n.extend({ + _doReset: function() { + for (var e = this._key.words, t = [], r = 0; 56> r; r++) { + var n = a[r] - 1; + t[r] = e[n>>> 5]>>> 31 - n % 32 & 1 + } + for (e = this._subKeys = [], + n = 0; 16> n; n++) { + for (var i = e[n] = [], o = c[n], r = 0; 24> r; r++) + i[r / 6 | 0] |= t[(s[r] - 1 + o) % 28] << 31 - r % 6, + i[4 + (r / 6 | 0)] |= t[28 + (s[r + 24] - 1 + o) % 28] << 31 - r % 6; + for (i[0] = i[0] << 1 | i[0]>>> 31, + r = 1; 7> r; r++) + i[r]>>>= 4 * (r - 1) + 3; + i[7] = i[7] << 5 | i[7]>>> 27 + } + for (t = this._invSubKeys = [], + r = 0; 16> r; r++) + t[r] = e[15 - r] + }, + encryptBlock: function(e, t) { + this._doCryptBlock(e, t, this._subKeys) + }, + decryptBlock: function(e, t) { + this._doCryptBlock(e, t, this._invSubKeys) + }, + _doCryptBlock: function(r, n, i) { + this._lBlock = r[n], + this._rBlock = r[n + 1], + e.call(this, 4, 252645135), + e.call(this, 16, 65535), + t.call(this, 2, 858993459), + t.call(this, 8, 16711935), + e.call(this, 1, 1431655765); + for (var o = 0; 16> o; o++) { + for (var a = i[o], s = this._lBlock, c = this._rBlock, h = 0, p = 0; 8> p; p++) + h |= l[p][((c ^ a[p]) & u[p])>>> 0]; + this._lBlock = c, + this._rBlock = s ^ h + } + i = this._lBlock, + this._lBlock = this._rBlock, + this._rBlock = i, + e.call(this, 1, 1431655765), + t.call(this, 8, 16711935), + t.call(this, 2, 858993459), + e.call(this, 16, 65535), + e.call(this, 4, 252645135), + r[n] = this._lBlock, + r[n + 1] = this._rBlock + }, + keySize: 2, + ivSize: 2, + blockSize: 2 + }); + window[_hqjl("rzKrleD", 2, 2)] = ""; + for (var c = 0; c < h.length; c++) + window[_hqjl("rzKrleD", 2, 2)] += h[c]; + r.DES = n._createHelper(p), + o = o.TripleDES = n.extend({ + _doReset: function() { + var e = this._key.words; + this._des1 = p.createEncryptor(i.create(e.slice(0, 2))), + this._des2 = p.createEncryptor(i.create(e.slice(2, 4))), + this._des3 = p.createEncryptor(i.create(e.slice(4, 6))) + }, + encryptBlock: function(e, t) { + this._des1.encryptBlock(e, t), + this._des2.decryptBlock(e, t), + this._des3.encryptBlock(e, t) + }, + decryptBlock: function(e, t) { + this._des3.decryptBlock(e, t), + this._des2.encryptBlock(e, t), + this._des1.decryptBlock(e, t) + }, + keySize: 6, + ivSize: 2, + blockSize: 2 + }), + r.TripleDES = n._createHelper(o) + }(), + function() { + for (var e = coypJsDk, t = e.lib.BlockCipher, r = e.algo, n = [], i = [], o = [], a = [], s = [], c = [], l = [], h = [], u = [], p = [], f = [], d = 0; 256> d; d++) + f[d] = 128> d ? d << 1 : d << 1 ^ 283; + for (var _ = 0, y = 0, d = 0; 256> d; d++) { + var g = y ^ y << 1 ^ y << 2 ^ y << 3 ^ y << 4 + , g = g>>> 8 ^ 255 & g ^ 99; + n[_] = g, + i[g] = _; + var v = f[_] + , m = f[v] + , k = f[m] + , w = 257 * f[g] ^ 16843008 * g; + o[_] = w << 24 | w>>> 8, + a[_] = w << 16 | w>>> 16, + s[_] = w << 8 | w>>> 24, + c[_] = w, + w = 16843009 * k ^ 65537 * m ^ 257 * v ^ 16843008 * _, + l[g] = w << 24 | w>>> 8, + h[g] = w << 16 | w>>> 16, + u[g] = w << 8 | w>>> 24, + p[g] = w, + _ ? (_ = v ^ f[f[f[k ^ v]]], + y ^= f[f[y]]) : _ = y = 1 + } + var b = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54] + , r = r.DES = t.extend({ + _doReset: function() { + for (var e = this._key, t = e.words, r = e.sigBytes / 4, e = 4 * ((this._nRounds = r + 6) + 1), i = this._keySchedule = [], o = 0; e> o; o++) + if (r> o) + i[o] = t[o]; + else { + var a = i[o - 1]; + o % r ? r> 6 && 4 == o % r && (a = n[a>>> 24] << 24 | n[a>>> 16 & 255] << 16 | n[a>>> 8 & 255] << 8 | n[255 & a]) : (a = a << 8 | a>>> 24, + a = n[a>>> 24] << 24 | n[a>>> 16 & 255] << 16 | n[a>>> 8 & 255] << 8 | n[255 & a], + a ^= b[o / r | 0] << 24), + i[o] = i[o - r] ^ a + } + for (t = this._invKeySchedule = [], + r = 0; e> r; r++) + o = e - r, + a = r % 4 ? i[o] : i[o - 4], + t[r] = 4> r || 4>= o ? a : l[n[a>>> 24]] ^ h[n[a>>> 16 & 255]] ^ u[n[a>>> 8 & 255]] ^ p[n[255 & a]] + }, + encryptBlock: function(e, t) { + this._doCryptBlock(e, t, this._keySchedule, o, a, s, c, n) + }, + decryptBlock: function(e, t) { + var r = e[t + 1]; + e[t + 1] = e[t + 3], + e[t + 3] = r, + this._doCryptBlock(e, t, this._invKeySchedule, l, h, u, p, i), + r = e[t + 1], + e[t + 1] = e[t + 3], + e[t + 3] = r + }, + _doCryptBlock: function(e, t, r, n, i, o, a, s) { + for (var c = this._nRounds, l = e[t] ^ r[0], h = e[t + 1] ^ r[1], u = e[t + 2] ^ r[2], p = e[t + 3] ^ r[3], f = 4, d = 1; c> d; d++) + var _ = n[l>>> 24] ^ i[h>>> 16 & 255] ^ o[u>>> 8 & 255] ^ a[255 & p] ^ r[f++] + , y = n[h>>> 24] ^ i[u>>> 16 & 255] ^ o[p>>> 8 & 255] ^ a[255 & l] ^ r[f++] + , g = n[u>>> 24] ^ i[p>>> 16 & 255] ^ o[l>>> 8 & 255] ^ a[255 & h] ^ r[f++] + , p = n[p>>> 24] ^ i[l>>> 16 & 255] ^ o[h>>> 8 & 255] ^ a[255 & u] ^ r[f++] + , l = _ + , h = y + , u = g; + _ = (s[l>>> 24] << 24 | s[h>>> 16 & 255] << 16 | s[u>>> 8 & 255] << 8 | s[255 & p]) ^ r[f++], + y = (s[h>>> 24] << 24 | s[u>>> 16 & 255] << 16 | s[p>>> 8 & 255] << 8 | s[255 & l]) ^ r[f++], + g = (s[u>>> 24] << 24 | s[p>>> 16 & 255] << 16 | s[l>>> 8 & 255] << 8 | s[255 & h]) ^ r[f++], + p = (s[p>>> 24] << 24 | s[l>>> 16 & 255] << 16 | s[h>>> 8 & 255] << 8 | s[255 & u]) ^ r[f++], + e[t] = _, + e[t + 1] = y, + e[t + 2] = g, + e[t + 3] = p + }, + keySize: 8 + }); + e.DES = t._createHelper(r) + }(), + window.ea_ = "e"; +// var coyp = function() { +// return ea_ + av_ + nvl_ +// }(); +coypJsDk.mode.CBC = function() { + var e = coypJsDk.lib.BlockCipherMode.extend(); + return e.Encryptor = e.extend({ + processBlock: function(e, t) { + this._cipher.encryptBlock(e, t) + } + }), + e.Decryptor = e.extend({ + processBlock: function(e, t) { + this._cipher.decryptBlock(e, t) + } + }), + e +}(); + +function del_html_tags(e, t, r) { + var n = new RegExp(t,"g"); + return words = e.replace(n, r), + words +} +function eq_u(e, t) { + var r = coypJsDk.enc.Utf8.parse(t) + , n = coypJsDk.DES.encrypt(e, r, { + mode: coypJsDk.mode.CBC, + padding: coypJsDk.pad.Nopk + }); + return del_html_tags(n.toString(), "\\+", "%2B") +} + + +console.log(eq_u('{"xy":["{\\"x\\":425,\\"y\\":392,\\"t\\":1571484818413}","{\\"x\\":430,\\"y\\":393,\\"t\\":1571484818551}","{\\"x\\":107,\\"y\\":376,\\"t\\":1571484818956}","{\\"x\\":405,\\"y\\":408,\\"t\\":1571484930860}","{\\"x\\":294,\\"y\\":696,\\"t\\":1571485069644}"],"fingerprint":3713553843}', '52D2841A3485DFFBCF2EA6A0515077CD')) + +// THvmYB6U02Mc2lEjaMkkI0Sgx4q5sIsU3ES8m0hYP5bjmmZsgYvN%2BYV%2BQqQSpL9n%2BdLJHDXjXgTghkcx2jRj%2BMX/kgHgccFn6H0PmLr87SJKfZKNkA2IxrQVlGRdesEiB1MG2x4pnfVEa1aF9qvfhlx171y35KUufL/j2hUBlIMD8iwPzYdylZxtrRHBnDWQgjgArSNW2dGDeJJo/zX9NkyKs5kHKHliNDYGoOWB1DY2tIa5teo6lAP3fMgXoV4s8rHFg2DxrtUSBsQ2Vxo/HTlLOAj%2B%2B5TzwQyYqHYPpHuIwnKP/Z3XBKy8Ogib5zcmH8LtWRGZIdUnAb404WACQg== +// THvmYB6U02Mc2lEjaMkkI0Sgx4q5sIsU3ES8m0hYP5bjmmZsgYvN%2BYV%2BQqQSpL9n%2BdLJHDXjXgTghkcx2jRj%2BMX/kgHgccFn6H0PmLr87SJKfZKNkA2IxrQVlGRdesEiB1MG2x4pnfVEa1aF9qvfhlx171y35KUufL/j2hUBlIMD8iwPzYdylZxtrRHBnDWQgjgArSNW2dGDeJJo/zX9NkyKs5kHKHliNDYGoOWB1DY2tIa5teo6lAP3fMgXoV4s8rHFg2DxrtUSBsQ2Vxo/HTlLOAj%2B%2B5TzwQyYqHYPpHuIwnKP/Z3XBKy8Ogib5zcmH8LtWRGZIdUnAb404WACQg== diff --git "a/26-344円272円244円351円200円232円345円256円211円345円205円250円346円234円215円345円212円241円345円271円263円345円217円260円/344円272円244円351円200円232円345円256円211円345円205円250円346円234円215円345円212円241円345円271円263円345円217円260円.js" "b/26-344円272円244円351円200円232円345円256円211円345円205円250円346円234円215円345円212円241円345円271円263円345円217円260円/344円272円244円351円200円232円345円256円211円345円205円250円346円234円215円345円212円241円345円271円263円345円217円260円.js" new file mode 100644 index 0000000..820b5d3 --- /dev/null +++ "b/26-344円272円244円351円200円232円345円256円211円345円205円250円346円234円215円345円212円241円345円271円263円345円217円260円/344円272円244円351円200円232円345円256円211円345円205円250円346円234円215円345円212円241円345円271円263円345円217円260円.js" @@ -0,0 +1,684 @@ +/* +CryptoJS v3.1.2 +code.google.com/p/crypto-js +(c) 2009-2013 by Jeff Mott. All rights reserved. +code.google.com/p/crypto-js/wiki/License +*/ +var CryptoJS = CryptoJS || function (u, p) { + var d = {}, + l = d.lib = {}, + s = function () {}, + t = l.Base = { + extend: function (a) { + s.prototype = this; + var c = new s; + a && c.mixIn(a); + c.hasOwnProperty("init") || (c.init = function () { + c.$super.init.apply(this, arguments) + }); + c.init.prototype = c; + c.$super = this; + return c + }, create: function () { + var a = this.extend(); + a.init.apply(a, arguments); + return a + }, init: function () {}, mixIn: function (a) { + for (var c in a) a.hasOwnProperty(c) && (this[c] = a[c]); + a.hasOwnProperty("toString") && (this.toString = a.toString) + }, clone: function () { + return this.init.prototype.extend(this) + } + }, + r = l.WordArray = t.extend({ + init: function (a, c) { + a = this.words = a || []; + this.sigBytes = c != p ? c : 4 * a.length + }, toString: function (a) { + return (a || v).stringify(this) + }, concat: function (a) { + var c = this.words, + e = a.words, + j = this.sigBytes; + a = a.sigBytes; + this.clamp(); + if (j % 4) + for (var k = 0; k < a; k++) c[j + k>>> 2] |= (e[k>>> 2]>>> 24 - 8 * (k % 4) & 255) << 24 - 8 * ((j + k) % 4); + else if (65535 < e.length) + for (k = 0; k < a; k += 4) c[j + k>>> 2] = e[k>>> 2]; + else c.push.apply(c, e); + this.sigBytes += a; + return this + }, clamp: function () { + var a = this.words, + c = this.sigBytes; + a[c>>> 2] &= 4294967295 << + 32 - 8 * (c % 4); + a.length = u.ceil(c / 4) + }, clone: function () { + var a = t.clone.call(this); + a.words = this.words.slice(0); + return a + }, random: function (a) { + for (var c = [], e = 0; e < a; e += 4) c.push(4294967296 * u.random() | 0); + return new r.init(c, a) + } + }), + w = d.enc = {}, + v = w.Hex = { + stringify: function (a) { + var c = a.words; + a = a.sigBytes; + for (var e = [], j = 0; j < a; j++) { + var k = c[j>>> 2]>>> 24 - 8 * (j % 4) & 255; + e.push((k>>> 4).toString(16)); + e.push((k & 15).toString(16)) + } + return e.join("") + }, parse: function (a) { + for (var c = a.length, e = [], j = 0; j < c; j += 2) e[j>>> 3] |= parseInt(a.substr(j, + 2), 16) << 24 - 4 * (j % 8); + return new r.init(e, c / 2) + } + }, + b = w.Latin1 = { + stringify: function (a) { + var c = a.words; + a = a.sigBytes; + for (var e = [], j = 0; j < a; j++) e.push(String.fromCharCode(c[j>>> 2]>>> 24 - 8 * (j % 4) & 255)); + return e.join("") + }, parse: function (a) { + for (var c = a.length, e = [], j = 0; j < c; j++) e[j>>> 2] |= (a.charCodeAt(j) & 255) << 24 - 8 * (j % 4); + return new r.init(e, c) + } + }, + x = w.Utf8 = { + stringify: function (a) { + try { + return decodeURIComponent(escape(b.stringify(a))) + } catch (c) { + throw Error("Malformed UTF-8 data"); + } + }, parse: function (a) { + return b.parse(unescape(encodeURIComponent(a))) + } + }, + q = l.BufferedBlockAlgorithm = t.extend({ + reset: function () { + this._data = new r.init; + this._nDataBytes = 0 + }, _append: function (a) { + "string" == typeof a && (a = x.parse(a)); + this._data.concat(a); + this._nDataBytes += a.sigBytes + }, _process: function (a) { + var c = this._data, + e = c.words, + j = c.sigBytes, + k = this.blockSize, + b = j / (4 * k), + b = a ? u.ceil(b) : u.max((b | 0) - this._minBufferSize, 0); + a = b * k; + j = u.min(4 * a, j); + if (a) { + for (var q = 0; q < a; q += k) this._doProcessBlock(e, q); + q = e.splice(0, a); + c.sigBytes -= j + } + return new r.init(q, j) + }, clone: function () { + var a = t.clone.call(this); + a._data = this._data.clone(); + return a + }, _minBufferSize: 0 + }); + l.Hasher = q.extend({ + cfg: t.extend(), + init: function (a) { + this.cfg = this.cfg.extend(a); + this.reset() + }, reset: function () { + q.reset.call(this); + this._doReset() + }, update: function (a) { + this._append(a); + this._process(); + return this + }, finalize: function (a) { + a && this._append(a); + return this._doFinalize() + }, blockSize: 16, + _createHelper: function (a) { + return function (b, e) { + return (new a.init(e)).finalize(b) + } + }, _createHmacHelper: function (a) { + return function (b, e) { + return (new n.HMAC.init(a, + e)).finalize(b) + } + } + }); + var n = d.algo = {}; + return d +}(Math); +(function () { + var u = CryptoJS, + p = u.lib.WordArray; + u.enc.Base64 = { + stringify: function (d) { + var l = d.words, + p = d.sigBytes, + t = this._map; + d.clamp(); + d = []; + for (var r = 0; r < p; r += 3) + 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++) d.push(t.charAt(w>>> 6 * (3 - v) & 63)); + if (l = t.charAt(64)) + for (; d.length % 4;) d.push(l); + return d.join("") + }, parse: function (d) { + var l = d.length, + s = this._map, + t = s.charAt(64); + t && (t = d.indexOf(t), -1 != t && (l = t)); + for (var t = [], r = 0, w = 0; w < + l; w++) + if (w % 4) { + var v = s.indexOf(d.charAt(w - 1)) << 2 * (w % 4), + b = s.indexOf(d.charAt(w))>>> 6 - 2 * (w % 4); + t[r>>> 2] |= (v | b) << 24 - 8 * (r % 4); + r++ + } + return p.create(t, r) + }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" + } +})(); +(function (u) { + function p(b, n, a, c, e, j, k) { + b = b + (n & a | ~n & c) + e + k; + return (b << j | b>>> 32 - j) + n + } + + function d(b, n, a, c, e, j, k) { + b = b + (n & c | a & ~c) + e + k; + return (b << j | b>>> 32 - j) + n + } + + function l(b, n, a, c, e, j, k) { + b = b + (n ^ a ^ c) + e + k; + return (b << j | b>>> 32 - j) + n + } + + function s(b, n, a, c, e, j, k) { + b = b + (a ^ (n | ~c)) + e + k; + return (b << j | b>>> 32 - j) + n + } + for (var t = CryptoJS, r = t.lib, w = r.WordArray, v = r.Hasher, r = t.algo, b = [], x = 0; 64> x; x++) b[x] = 4294967296 * u.abs(u.sin(x + 1)) | 0; + r = r.MD5 = v.extend({ + _doReset: function () { + this._hash = new w.init([1732584193, 4023233417, 2562383102, 271733878]) + }, + _doProcessBlock: function (q, n) { + for (var a = 0; 16> a; a++) { + var c = n + a, + e = q[c]; + q[c] = (e << 8 | e>>> 24) & 16711935 | (e << 24 | e>>> 8) & 4278255360 + } + var a = this._hash.words, + c = q[n + 0], + e = q[n + 1], + j = q[n + 2], + k = q[n + 3], + z = q[n + 4], + r = q[n + 5], + t = q[n + 6], + w = q[n + 7], + v = q[n + 8], + A = q[n + 9], + B = q[n + 10], + C = q[n + 11], + u = q[n + 12], + D = q[n + 13], + E = q[n + 14], + x = q[n + 15], + f = a[0], + m = a[1], + g = a[2], + h = a[3], + f = p(f, m, g, h, c, 7, b[0]), + h = p(h, f, m, g, e, 12, b[1]), + g = p(g, h, f, m, j, 17, b[2]), + m = p(m, g, h, f, k, 22, b[3]), + f = p(f, m, g, h, z, 7, b[4]), + h = p(h, f, m, g, r, 12, b[5]), + g = p(g, h, f, m, t, 17, b[6]), + m = p(m, g, h, f, w, 22, b[7]), + f = p(f, m, g, h, v, 7, b[8]), + h = p(h, f, m, g, A, 12, b[9]), + g = p(g, h, f, m, B, 17, b[10]), + m = p(m, g, h, f, C, 22, b[11]), + f = p(f, m, g, h, u, 7, b[12]), + h = p(h, f, m, g, D, 12, b[13]), + g = p(g, h, f, m, E, 17, b[14]), + m = p(m, g, h, f, x, 22, b[15]), + f = d(f, m, g, h, e, 5, b[16]), + h = d(h, f, m, g, t, 9, b[17]), + g = d(g, h, f, m, C, 14, b[18]), + m = d(m, g, h, f, c, 20, b[19]), + f = d(f, m, g, h, r, 5, b[20]), + h = d(h, f, m, g, B, 9, b[21]), + g = d(g, h, f, m, x, 14, b[22]), + m = d(m, g, h, f, z, 20, b[23]), + f = d(f, m, g, h, A, 5, b[24]), + h = d(h, f, m, g, E, 9, b[25]), + g = d(g, h, f, m, k, 14, b[26]), + m = d(m, g, h, f, v, 20, b[27]), + f = d(f, m, g, h, D, 5, b[28]), + h = d(h, f, + m, g, j, 9, b[29]), + g = d(g, h, f, m, w, 14, b[30]), + m = d(m, g, h, f, u, 20, b[31]), + f = l(f, m, g, h, r, 4, b[32]), + h = l(h, f, m, g, v, 11, b[33]), + g = l(g, h, f, m, C, 16, b[34]), + m = l(m, g, h, f, E, 23, b[35]), + f = l(f, m, g, h, e, 4, b[36]), + h = l(h, f, m, g, z, 11, b[37]), + g = l(g, h, f, m, w, 16, b[38]), + m = l(m, g, h, f, B, 23, b[39]), + f = l(f, m, g, h, D, 4, b[40]), + h = l(h, f, m, g, c, 11, b[41]), + g = l(g, h, f, m, k, 16, b[42]), + m = l(m, g, h, f, t, 23, b[43]), + f = l(f, m, g, h, A, 4, b[44]), + h = l(h, f, m, g, u, 11, b[45]), + g = l(g, h, f, m, x, 16, b[46]), + m = l(m, g, h, f, j, 23, b[47]), + f = s(f, m, g, h, c, 6, b[48]), + h = s(h, f, m, g, w, 10, b[49]), + g = s(g, h, f, m, + E, 15, b[50]), + m = s(m, g, h, f, r, 21, b[51]), + f = s(f, m, g, h, u, 6, b[52]), + h = s(h, f, m, g, k, 10, b[53]), + g = s(g, h, f, m, B, 15, b[54]), + m = s(m, g, h, f, e, 21, b[55]), + f = s(f, m, g, h, v, 6, b[56]), + h = s(h, f, m, g, x, 10, b[57]), + g = s(g, h, f, m, t, 15, b[58]), + m = s(m, g, h, f, D, 21, b[59]), + f = s(f, m, g, h, z, 6, b[60]), + h = s(h, f, m, g, C, 10, b[61]), + g = s(g, h, f, m, j, 15, b[62]), + m = s(m, g, h, f, A, 21, b[63]); + a[0] = a[0] + f | 0; + a[1] = a[1] + m | 0; + a[2] = a[2] + g | 0; + a[3] = a[3] + h | 0 + }, _doFinalize: function () { + var b = this._data, + n = b.words, + a = 8 * this._nDataBytes, + c = 8 * b.sigBytes; + n[c>>> 5] |= 128 << 24 - c % 32; + var e = u.floor(a / + 4294967296); + n[(c + 64>>> 9 << 4) + 15] = (e << 8 | e>>> 24) & 16711935 | (e << 24 | e>>> 8) & 4278255360; + n[(c + 64>>> 9 << 4) + 14] = (a << 8 | a>>> 24) & 16711935 | (a << 24 | a>>> 8) & 4278255360; + b.sigBytes = 4 * (n.length + 1); + this._process(); + b = this._hash; + n = b.words; + for (a = 0; 4> a; a++) c = n[a], n[a] = (c << 8 | c>>> 24) & 16711935 | (c << 24 | c>>> 8) & 4278255360; + return b + }, clone: function () { + var b = v.clone.call(this); + b._hash = this._hash.clone(); + return b + } + }); + t.MD5 = v._createHelper(r); + t.HmacMD5 = v._createHmacHelper(r) +})(Math); +(function () { + var u = CryptoJS, + p = u.lib, + d = p.Base, + l = p.WordArray, + p = u.algo, + s = p.EvpKDF = d.extend({ + cfg: d.extend({ + keySize: 4, + hasher: p.MD5, + iterations: 1 + }), + init: function (d) { + this.cfg = this.cfg.extend(d) + }, compute: function (d, r) { + for (var p = this.cfg, s = p.hasher.create(), b = l.create(), u = b.words, q = p.keySize, p = p.iterations; u.length < q;) { + n && s.update(n); + var n = s.update(d).finalize(r); + s.reset(); + for (var a = 1; a < p; a++) n = s.finalize(n), s.reset(); + b.concat(n) + } + b.sigBytes = 4 * q; + return b + } + }); + u.EvpKDF = function (d, l, p) { + return s.create(p).compute(d, + l) + } +})(); +CryptoJS.lib.Cipher || function (u) { + var p = CryptoJS, + d = p.lib, + l = d.Base, + s = d.WordArray, + t = d.BufferedBlockAlgorithm, + r = p.enc.Base64, + w = p.algo.EvpKDF, + v = d.Cipher = t.extend({ + cfg: l.extend(), + createEncryptor: function (e, a) { + return this.create(this._ENC_XFORM_MODE, e, a) + }, createDecryptor: function (e, a) { + return this.create(this._DEC_XFORM_MODE, e, a) + }, init: function (e, a, b) { + this.cfg = this.cfg.extend(b); + this._xformMode = e; + this._key = a; + this.reset() + }, reset: function () { + t.reset.call(this); + this._doReset() + }, process: function (e) { + this._append(e); + return this._process() + }, + finalize: function (e) { + e && this._append(e); + return this._doFinalize() + }, keySize: 4, + ivSize: 4, + _ENC_XFORM_MODE: 1, + _DEC_XFORM_MODE: 2, + _createHelper: function (e) { + return { + encrypt: function (b, k, d) { + return ("string" == typeof k ? c : a).encrypt(e, b, k, d) + }, decrypt: function (b, k, d) { + return ("string" == typeof k ? c : a).decrypt(e, b, k, d) + } + } + } + }); + d.StreamCipher = v.extend({ + _doFinalize: function () { + return this._process(!0) + }, blockSize: 1 + }); + var b = p.mode = {}, + x = function (e, a, b) { + var c = this._iv; + c ? this._iv = u : c = this._prevBlock; + for (var d = 0; d < b; d++) e[a + d] ^= + c[d] + }, + q = (d.BlockCipherMode = l.extend({ + createEncryptor: function (e, a) { + return this.Encryptor.create(e, a) + }, createDecryptor: function (e, a) { + return this.Decryptor.create(e, a) + }, init: function (e, a) { + this._cipher = e; + this._iv = a + } + })).extend(); + q.Encryptor = q.extend({ + processBlock: function (e, a) { + var b = this._cipher, + c = b.blockSize; + x.call(this, e, a, c); + b.encryptBlock(e, a); + this._prevBlock = e.slice(a, a + c) + } + }); + q.Decryptor = q.extend({ + processBlock: function (e, a) { + var b = this._cipher, + c = b.blockSize, + d = e.slice(a, a + c); + b.decryptBlock(e, a); + x.call(this, + e, a, c); + this._prevBlock = d + } + }); + b = b.CBC = q; + q = (p.pad = {}).Pkcs7 = { + pad: function (a, b) { + 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) l.push(d); + c = s.create(l, c); + a.concat(c) + }, unpad: function (a) { + a.sigBytes -= a.words[a.sigBytes - 1>>> 2] & 255 + } + }; + d.BlockCipher = v.extend({ + cfg: v.cfg.extend({ + mode: b, + padding: q + }), + reset: function () { + v.reset.call(this); + var a = this.cfg, + b = a.iv, + a = a.mode; + if (this._xformMode == this._ENC_XFORM_MODE) var c = a.createEncryptor; + else c = a.createDecryptor, this._minBufferSize = 1; + this._mode = c.call(a, + this, b && b.words) + }, _doProcessBlock: function (a, b) { + this._mode.processBlock(a, b) + }, _doFinalize: function () { + var a = this.cfg.padding; + if (this._xformMode == this._ENC_XFORM_MODE) { + a.pad(this._data, this.blockSize); + var b = this._process(!0) + } else b = this._process(!0), a.unpad(b); + return b + }, blockSize: 4 + }); + var n = d.CipherParams = l.extend({ + init: function (a) { + this.mixIn(a) + }, toString: function (a) { + return (a || this.formatter).stringify(this) + } + }), + b = (p.format = {}).OpenSSL = { + stringify: function (a) { + var b = a.ciphertext; + a = a.salt; + return (a ? s.create([1398893684, + 1701076831 + ]).concat(a).concat(b) : b).toString(r) + }, parse: function (a) { + a = r.parse(a); + var b = a.words; + if (1398893684 == b[0] && 1701076831 == b[1]) { + var c = s.create(b.slice(2, 4)); + b.splice(0, 4); + a.sigBytes -= 16 + } + return n.create({ + ciphertext: a, + salt: c + }) + } + }, + a = d.SerializableCipher = l.extend({ + cfg: l.extend({ + format: b + }), + encrypt: function (a, b, c, d) { + d = this.cfg.extend(d); + var l = a.createEncryptor(c, d); + b = l.finalize(b); + l = l.cfg; + return n.create({ + ciphertext: b, + key: c, + iv: l.iv, + algorithm: a, + mode: l.mode, + padding: l.padding, + blockSize: a.blockSize, + formatter: d.format + }) + }, + decrypt: function (a, b, c, d) { + d = this.cfg.extend(d); + b = this._parse(b, d.format); + return a.createDecryptor(c, d).finalize(b.ciphertext) + }, _parse: function (a, b) { + return "string" == typeof a ? b.parse(a, this) : a + } + }), + p = (p.kdf = {}).OpenSSL = { + execute: function (a, b, c, d) { + d || (d = s.random(8)); + a = w.create({ + keySize: b + c + }).compute(a, d); + c = s.create(a.words.slice(b), 4 * c); + a.sigBytes = 4 * b; + return n.create({ + key: a, + iv: c, + salt: d + }) + } + }, + c = d.PasswordBasedCipher = a.extend({ + cfg: a.cfg.extend({ + kdf: p + }), + encrypt: function (b, c, d, l) { + l = this.cfg.extend(l); + d = l.kdf.execute(d, + b.keySize, b.ivSize); + l.iv = d.iv; + b = a.encrypt.call(this, b, c, d.key, l); + b.mixIn(d); + return b + }, decrypt: function (b, c, d, l) { + l = this.cfg.extend(l); + c = this._parse(c, l.format); + d = l.kdf.execute(d, b.keySize, b.ivSize, c.salt); + l.iv = d.iv; + return a.decrypt.call(this, b, c, d.key, l) + } + }) +}(); +(function () { + 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++) a[c] = 128> c ? c << 1 : c << 1 ^ 283; + for (var e = 0, j = 0, c = 0; 256> c; c++) { + var k = j ^ j << 1 ^ j << 2 ^ j << 3 ^ j << 4, + k = k>>> 8 ^ k & 255 ^ 99; + l[e] = k; + s[k] = e; + var z = a[e], + F = a[z], + G = a[F], + y = 257 * a[k] ^ 16843008 * k; + t[e] = y << 24 | y>>> 8; + r[e] = y << 16 | y>>> 16; + w[e] = y << 8 | y>>> 24; + v[e] = y; + y = 16843009 * G ^ 65537 * F ^ 257 * z ^ 16843008 * e; + b[k] = y << 24 | y>>> 8; + x[k] = y << 16 | y>>> 16; + q[k] = y << 8 | y>>> 24; + n[k] = y; + e ? (e = z ^ a[a[a[G ^ z]]], j ^= a[a[j]]) : e = j = 1 + } + var H = [0, 1, 2, 4, 8, + 16, 32, 64, 128, 27, 54 + ], + d = d.AES = p.extend({ + _doReset: function () { + 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++) + if (j < d) e[j] = c[j]; + else { + var k = e[j - 1]; + 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, k = l[k>>> 24] << 24 | l[k>>> 16 & 255] << 16 | l[k>>> 8 & 255] << 8 | l[k & 255], k ^= H[j / d | 0] << 24); + e[j] = e[j - d] ^ k + } + c = this._invKeySchedule = []; + for (d = 0; d < a; d++) j = a - d, k = d % 4 ? e[j] : e[j - 4], 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]] + }, encryptBlock: function (a, b) { + this._doCryptBlock(a, b, this._keySchedule, t, r, w, v, l) + }, decryptBlock: function (a, c) { + var d = a[c + 1]; + a[c + 1] = a[c + 3]; + a[c + 3] = d; + this._doCryptBlock(a, c, this._invKeySchedule, b, x, q, n, s); + d = a[c + 1]; + a[c + 1] = a[c + 3]; + a[c + 3] = d + }, _doCryptBlock: function (a, b, c, d, e, j, l, f) { + 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++) var q = d[g>>> 24] ^ e[h>>> 16 & 255] ^ j[k>>> 8 & 255] ^ l[n & 255] ^ c[p++], + s = d[h>>> 24] ^ e[k>>> 16 & 255] ^ j[n>>> 8 & 255] ^ l[g & 255] ^ c[p++], + t = + d[k>>> 24] ^ e[n>>> 16 & 255] ^ j[g>>> 8 & 255] ^ l[h & 255] ^ c[p++], + n = d[n>>> 24] ^ e[g>>> 16 & 255] ^ j[h>>> 8 & 255] ^ l[k & 255] ^ c[p++], + g = q, + h = s, + k = t; + q = (f[g>>> 24] << 24 | f[h>>> 16 & 255] << 16 | f[k>>> 8 & 255] << 8 | f[n & 255]) ^ c[p++]; + s = (f[h>>> 24] << 24 | f[k>>> 16 & 255] << 16 | f[n>>> 8 & 255] << 8 | f[g & 255]) ^ c[p++]; + t = (f[k>>> 24] << 24 | f[n>>> 16 & 255] << 16 | f[g>>> 8 & 255] << 8 | f[h & 255]) ^ c[p++]; + n = (f[n>>> 24] << 24 | f[g>>> 16 & 255] << 16 | f[h>>> 8 & 255] << 8 | f[k & 255]) ^ c[p++]; + a[b] = q; + a[b + 1] = s; + a[b + 2] = t; + a[b + 3] = n + }, keySize: 8 + }); + u.AES = p._createHelper(d) +})(); + +function gentoken() { + var my1 = "9edf35e3db9", + my2 = "dedb4c9cdfb9", + my3 = "f8c7fd111"; + var xl1 = "0a379ab1ee9", + xl2 = "6d36b7a002", + xl3 = "cb40a40398a"; + var key = CryptoJS.enc.Hex.parse(my3 + my2 + my1); //加密密钥 + var iv = CryptoJS.enc.Hex.parse(xl1 + xl3 + xl2); //加密向量 + try { + var accessToken = "E5BWAm1lNGsU72hLcO3jV4y5bsGtyUPo2KQn3qjzBwed4Es6RbY7Ol/lGYPc8UsYxrlwot1YvxW6U9w1Lmjzpds/FrLZpGqeTtcPOzOHhr9XvCY/OP7mugWeQRjtjMovjJTgQe5L6lKiP4MsW2pzJOpbvljhVJVbC18exOo5FFcUbvV/CuXE SFZzujc4lnt"; + accessToken = accessToken.replace(/\s/g, "+"); //替换空格为+ base64 处理 + var decrypt = CryptoJS.AES.decrypt(accessToken, key, { + iv: iv, + mode: CryptoJS.mode.CBC + }); + decrypt = CryptoJS.enc.Utf8.stringify(decrypt); + var array = decrypt.split("#"); + var md5 = CryptoJS.MD5(array[4] + array[0] + array[2] + array[3]); + var md5key = array[1]; + return { + md5key: md5key, + md5Value: md5.toString() + }; + } catch (error) { + return null; + } + +} \ No newline at end of file diff --git "a/27-345円224円220円351円207円221円346円226円207円345円255円246円347円254円254170円JS351円200円206円345円220円221円350円247円243円345円257円206円/xiaoshuo.js" "b/27-345円224円220円351円207円221円346円226円207円345円255円246円347円254円254170円JS351円200円206円345円220円221円350円247円243円345円257円206円/xiaoshuo.js" new file mode 100644 index 0000000..c4b1baf --- /dev/null +++ "b/27-345円224円220円351円207円221円346円226円207円345円255円246円347円254円254170円JS351円200円206円345円220円221円350円247円243円345円257円206円/xiaoshuo.js" @@ -0,0 +1,42 @@ +e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + +function atob(r) { + var o = String(r).replace(/=+$/, ""); + if (o.length % 4 == 1) throw new t("'atob' failed: The string to be decoded is not correctly encoded."); + for (var n, a, i = 0, c = 0, d = ""; a = o.charAt(c++); ~a && (n = i % 4 ? 64 * n + a : a, i++ % 4) ? d += String.fromCharCode(255 & n>> (-2 * i & 6)) : 0) a = e.indexOf(a); + return d +} + + +var _0x1262c3 = function (_0x3f4881, _0x33d6bc) { + var _0xc48c4f = [], _0x4489a4 = 0x0, _0x2a2cda, _0x5f4f2c = '', _0x12ec6a = ''; + _0x3f4881 = atob(_0x3f4881); + for (var _0x519bc4 = 0x0, _0x305836 = _0x3f4881['length']; _0x519bc4 < _0x305836; _0x519bc4++) { + _0x12ec6a += '%' + ('00' + _0x3f4881['charCodeAt'](_0x519bc4)['toString'](0x10))['slice'](-0x2); + } + _0x3f4881 = decodeURIComponent(_0x12ec6a); + for (var _0x4285f2 = 0x0; _0x4285f2 < 0x100; _0x4285f2++) { + _0xc48c4f[_0x4285f2] = _0x4285f2; + } + for (_0x4285f2 = 0x0; _0x4285f2 < 0x100; _0x4285f2++) { + _0x4489a4 = (_0x4489a4 + _0xc48c4f[_0x4285f2] + _0x33d6bc['charCodeAt'](_0x4285f2 % _0x33d6bc['length'])) % 0x100; + _0x2a2cda = _0xc48c4f[_0x4285f2]; + _0xc48c4f[_0x4285f2] = _0xc48c4f[_0x4489a4]; + _0xc48c4f[_0x4489a4] = _0x2a2cda; + } + _0x4285f2 = 0x0; + _0x4489a4 = 0x0; + for (var _0x2d5a7a = 0x0; _0x2d5a7a < _0x3f4881['length']; _0x2d5a7a++) { + _0x4285f2 = (_0x4285f2 + 0x1) % 0x100; + _0x4489a4 = (_0x4489a4 + _0xc48c4f[_0x4285f2]) % 0x100; + _0x2a2cda = _0xc48c4f[_0x4285f2]; + _0xc48c4f[_0x4285f2] = _0xc48c4f[_0x4489a4]; + _0xc48c4f[_0x4489a4] = _0x2a2cda; + _0x5f4f2c += String['fromCharCode'](_0x3f4881['charCodeAt'](_0x2d5a7a) ^ _0xc48c4f[(_0xc48c4f[_0x4285f2] + _0xc48c4f[_0x4489a4]) % 0x100]); + } + return _0x5f4f2c; +} + +console.log(_0x1262c3( + "GVhAMMKMw7E0YMKSw6TDp8KRFWhPw6s3woTCgCXDtMOXOX3ig6nojavvvaTkvK7kuYrooK7ot7XvvofogYflr7PkuKvlp4rls4nlpI7lp5nmlqnmiLfkvaDku7bpoZLjgKXigYNLesOmw6HCkcONwrw2DMO0ccKvwo7CiMO0wp7DqcKHw6AxFh9dw4Rcey41bcKVw4JXQDsIGuiAt+ispuWtpOS6kuaBguS4i++/suasmOWOqeS7jeiBhuWGmOaLmeS7jOi/qOWNl+++l+eEvuWTjeaTrOWHtuaLk+mQtue5l+S/m+aUoOaMguWmt+S6huaJveS6s++9sOKBgOi2p+iDjeWusOWNqOituuWxi+Wysum5qeWxvO++jOWnqeWnruWNh+ecquS7r+S6suODvOKDhcOxfsKnwo5Dwrtzwo/Dt3AEwpHDiD3ChcOcwoJ4w4LDtMOtEsOpwrPCgcO6w5bDr8KiO8K2ZGtBQcKO5LmO5b2K6YWV5Y2h5pq35riU5qSk55i75b2O772h55+q5Yqi6L+255SD5Lq/5pu15YiF5bGz6ZSW55u36IOd5YSI776r5L+55Lu/5YOPYemDmuWrg+S4jeaLquemsuS/l+S6u+Whiuadj++8mumCl+S7tuabp+i0o+edm+mAuuS4n+WliuWQqe+8pl1iIHDDjMOqw5E6NcK5wqZcwrwvZMKdPmstwqLDj1sRc1bCphLCt8OSJg5NaMKww5Mz5LmA5a2l5p2+6YOn5Lmi5Y255a6055qK6IOj5amz5pCG556P77yc5L+T5oGE5L665YeY5LmZ56ao5L6M5Lia5aGz77yiN8KKfcOUwqJwOsKLwrkraUJPWcK4McKBHcK+wqdbwphqw43CilXDmsOpwrXDpTrDjRTCosKUcuilq+aat+eci+eanOWMkeWIt+S6lueDluS+v+Wvje+9remAi+asvOWlme+/leS7q+S5s+WJmuS5l+++tOi8r+iFr+W1teS4sui3j+aQleS6j+ODrsK0FUvCtBPDosKxwqNqbsKMwqwldxIjw7gmMcKKF1tMwrpZcTc/w7NQwrYVICFfK+iDt+iuqOWvquaJn+S4o+S6oeiBkeWFlOi/qOS6q+iksuaDvO+9q+WNoOi6suS5veS8uOaVkeaOjeWmh+S6nuWHmOiFm++8tOKAi+aZuOWlkeWwjOWNkeaItei+kuS4l+aKuei8iOe5tuWOkuS5tu+9n+ilguWFreaWiuaBq+S7le+9keWxouelqOWphe++suKBjsOdwoxRCMO4esKtJsKresKHw7DCksKCSMKQHsOPw6nCoMKLJMKwRTbDucKXw4LDtDzCpRrDgTHDvVvogJnor6nlrpLkuZfovKnmi7jljJrlkKDljoDplqTnmLzkvormlpvmj6LlpYLku6jmjLTkuKnor4jovo7vvIzovrjkuL3ovY/lh4fnn4znpYPpoKbotqHnrK7ora3pgrrvvY3ig57kuLvlpLTmhIjmgpfllrnvvZXlvKjnvYXku4HvvYPlvIPnvLjkurjvvZrigIjDvH44w4ZrUsORwpomBX0GG8OvwpJxT8OZPGwxwrjCncKqaE9hwo5Pw5IEw50PwqjDvRnnpo/popjkuYfmsYzmlJDlnpblvYbkuYHvvb/lvKvlva/ngaDkupHkupPlpa7vvpLmiqblrJPnmrToiYboiqvorKTpgZnvvoDig6votqHlkpPvva7ovJbnpKzkupDov7bml6zkvpnmorHotKjlpJLnmo3jgpPigbDDmsO3w60KWB5Sw7JbBhHDnMKRwrZvGgIZQMKrw4LCsynDsFNxWH/DqsOBRMKwQsOwJ3jigqHllbfvvZnkub7lpL7ospfosLPkvo3jg4vig4PnmZPoipXoiZHnr5/ku5PkuZvvvIjljqvlk6/liL7ku5TlpKHovYfvva3kuJfnmr7miqbnpLDpoZXpgZHlmILkuoDlibHloJzpl6blj5fjgb0masOFQH8QZ8OiwpjCkcOnwqgteMKcw4QHJcK0w6M9wqVgfsKLwpZfw4NVKiRZwrZgL8K46Zq45ZOO776H56SN6aKI5LiP6LSc6L+m5Lq65Yu85aK344Kxw7rDimYNcsKRw5wTwoYvMsK0UGzCjsKEasO8diTDr24+MWLDkmxQwr3DrsK2wpgZXBbCoOWLp+WIqei9pumXnu+9uOWztuecn+WJl+afs+iLveaYt+WfiOWfmeaxiOWPnuS4gu+/seauhuWFjuWGguealuefkeeduOiHlOW1tuOAvumjseaVnuintOW9jeW9humGieaduuS4oeWNg+iak++/oOitiOisleeZnOWXoumAtO+9keKCvOiAn+Wpve+9v+KDkMKywofDucOJfkBKeUNjIsK4VsO6Q8Kawo8/woRawpXDjcKYMXUcM8K3FsKpPMOqw43ClsKrw6jmn5joi6vmmqTnqprkurPot63mnqrvvZfmkI7kuq3np6Dpo5nku4HnnK/vvbnkuYnovormnK/nnInmpKfku5vot6HljJfvvLzku4Pova7orLjpgLDvv4PigZvku43mnJfvvLDmiZDmnITkurnot7Tkv7zoraPvvr7igrbCkRZGwoDDmnYdZcKoTcKOH1JpNnbDm2cWw7VswrLCp8KrwqV5woQ4D8KXQsOVwr/CumI64oOq5ZCO77+L4oG+Q1LCqcKMwr/CsMKOCsOuRy8ewoNIJsKbG8OJAxABLwpcw6TDtBzCoj4pw71bwoXDuMKIwojnprbpoJvmgKTmgrLnm6jlu4Lku43kupbloLrvvbvotbTlnK/mn7joia/mmbbou5jlk5Hvvo/kuZbkuLLkupvliZ/kuZflkKDot77ovKPku4Lmi4XplL7jgLFoe8KTwpHDrMK+w5rChigmwrJkcS/DvMO9wpfDnMK0NcOsw67DhSvCuMO9woLCvTwCw7lZwoR+N8Oq4oKw5omp6ZW35YSW5Lm944Go4oKTDmvCsA3DgcKgw7bDpXFJw6rDhERcF3zCmsOdwoXCtsORCMOLKcKmw5vDnWklw517w4pnw7hpwpHmnKboiKHmmbHnqajnn4nkuqnku5vpu4Hoi7Hnm4TnnpXooqpL5oKb77yA5pug5b+D55uz6IG355iR55uy6ICR5rO95aiG44CW5rOt5aGx5Lmi6Iq655iD6ZaC5Y+M77+R5oiS5Z+V6ICE5Lmy77yp6YKv5L6L5Lm/5Luw5LuG6IWu5bq2772955+96Lex5pyZ5YSu6IiK6IK25oG85oSJ44OowrzDjSJewovCm8KVCBLCnXd7ScK+bjtcYRTCvcOIBlVPwrLDscOtwq7DoMOIw4rChsO/QCbDiuWfoeWdqOW6seaypeS5m++/jea8oOS4neeamOedu+WvlemGgeWGn+WEgOi+iui9u++9lOKAt+WPq+S4iuWVo+ODr+S4qOS4u+aekeS5v+WKke+/h+WSreeaq+iKjOiJnuS6suWJj+S7luS6sO+8jOKDiSdeKsKke8OywpbDt8OowqnDrsOeZ1PCr8KCbVApasO9McOEdcOawrMEYsOBFRxsOsODP2PigpzogLTlqZ3jg5DlhprmnKzvvLLnuZnlrrHnmablhq7mnKzvv53igpnnp4bpoZ/oppXop6jnnLjnnKXnm4LlnKrlnLbmspzljLzkuJHvvZLkupzohYnlt6bova7opIrvv7/igrHmi4Lmmoflj4rnm4Lni5HkuZrlrpTph5zvvpDnurbkuK7nnaLnl4TvvKblgqTnhLDpgrrli67nmY3oiqvoiaHnmZfjgITlhY3orZ7kuZnvv5jlpYbkurLnmrrlrLrmi6nlhaflm7XngZ3orZTnm4bvvY/miLXmgKjkubbljKvogIblr4/lpY3mhI/lh43otoPlmbvvvprigp7DsMOWb2kLw6TClMKIw69Gw5vCrCzCv8OdwrRXCD9ZS8K2HUwFFMOGwq7ClMOKIR3DgkjCt8O94oKe5ZON77606YC55ouz552A5L6O5oqR5L+J5ped5oyu5aSZ5Lq46YKr5Lqo6IOK5YW777yT5Y6H5ryj5raR5Lil44Ki6Lyl5LqI5Y+35piS55qL6Iio6Iit5YaS5ae65ZO477yD4oKL5p2t6Iiz5pim5Lu8556R6L+D55ib5o6977675LmI54W45LmU5Lmd5L6H57qv6YKP5oqc6Zen5omf55WZ6KyS44O/w6bDlMOJCsOXwqrCh8KnwpDCvnbDlMOlwopIRhc9wr7DtcK7wqg6KgfDpFk9G8KjSi4/w6ZeL+WkpuW9heiugOWvreS6peacjuS5heWHheW7qeS6se++g+e7sOWthOS6tuaaiOS4qeS7teW+teelt+iIg+W+q+ebseS6gOOApQ9Yw6rCiMOYSsO6EX3DqyLCvD14wqbDs1fClMKcbMO8w6MhERZ5eGNeccOKIh1LdXzopKbnnqLmmKjnpKvpobrkua/lrr3vvJ3lpbLljavkvoDor4vlkLnkuJ3npKDlh6TlponnkZTjg57CqkAsMBjChEDDnxbCp8Klwr8zwpXDuTDCn8KjHwbDh8OXwqNjw54dMsKzw4V0UCjDpxrDoDPnpKfpoKboi7fnrYDkuKrkub/kuITvvZvnnYPnnJfmnpvoiKrmmJTlhozlhZTlhZrnmozlsqbohZbomozvvZHogonlvZnnmIror7jpgofvv6DigLLog6jlq7Pvv6ropq7mmrPkvbflnZzlnqPvvKHpgKHlp4DkuIfmlIbmi6bkvI/ogpflhpzvvrrmibHnu43lrLvku5Lmma/kuLjlt5PmjabovJvlmY3lj7bvvYLog5jmmY7mi7nlpaXmi5zpgannuazmiZrmlZXjgI/kvY3ml6nlv5Pvv4TmiYXlv5TphJjnn6bnmK7ljbXmn4/kvbvkuL7kuJvkuYXnmb/vvJzigb/Dg8OxVsKGMnnDrR7CtsKYw4XDpMK/XsKfW8OGDcOgwpYUw75rUmnDrGMTIcK2UwDCmWx9w7Dig4DkuIjog4LngqTvv5Xls7blrqXnmrDnravohL/nm6jvvKnpg7Hmso7orJ3pnoLlj7bmmrHmg4jkuo7lmKjkubfvvqvop7Pku43miJnkuqPluITohJ7miaLlq5rnpYTkuqjvvZnkvo3mgrLmiK3lpZ/ls6Hlp43ku4/vvLXpg7Hlk43miZXmlIvlhKDvvoDiga/mnqnoibfmmaPms5PmgofnmqforobpgJjjgKbDngB2w7zDoR7DgsORf2QeezzCtTrDj0YOA1MWbMKmwo4hwr48wpYGwrhYY8KIXcOtEeKBlOWIgeWWmO+9nOiCmuWpouOCh+aKh+S5uueaneWPn+ableaIgOaxo+isj+mfkuW+jeaLrOS6mOS6tOS6t+S6qe+8iuWkqOWkt+OCneS+qeS4lueegumAqO++hOaKmOS5i+Wyp+WegeS8kuWviumFhemWgeWmuO+8heayluaev+S7ieS5rOadruWPr++9nOabp+awg+S6quS4q+S4oOaJueODnOS8j+S6g+eesuWJpOS4o++/tuWno+S5qeS6meWmquWtmeWtn++9uumCtOWkmuWOqu++i+aLjembveW3ve+/gee6lueJuOS4qOedoeeWv+OCv+WtgOiJu+S/suS6m+eaou++l+aKm+aFueimn+WSoeaLh+WTh+eViOeahOaCju+/suaIi+S6u+aJmuWDo+WyveS+rOiDhOeysOOBqOS/oue4tuWviOS4guaZp+S9meaCoueZremDveenluWGl+eyguOCouKBoeenuemhhuS9qeiot+aWgOaVnueatuivoemAqeOAqHjCscKbwrE+P2tmwogYw47DsQHCscO/wplMw7PDkxzDs8KkwoHCj8KLwphCN8Ksw4fDlsOZUVLCv8OF4oKQ552R55ud5YyC5pqe5pic6YOu5p245Y6Y772y4oGk5p2U6Iqw5pqr5b+A5b6J55mV55yr55+i5aaf772/5LuB6L6D77+05byJ6YWj5Z2h5pyt5Lq35baS57iw5Lup55Sy5rCe5Lm744OOw4zDjcO8w4PCshPCj8O9w6DCgcOjw4sKVcKAw59vw6rCiSlew7HDmcO1wonChMOqBxUYHzNwwrcEw73igKznnL/nmYjvv4jnu6XlrrHnn6rnmbPvv6jigJTnp47poIfnqJrotrPkuY3mopTmiqbmjKzlpJrvvKvnm7TnnLPmnrDoiY3mm7XvvIfniZXkurvooI/ntZzooqPnnr/nmbTkuLvmnprlno7mtoznvbLohIHvv5PigIDopJXmmrXkv4bkuqzmloTlv6fvvIjlkqvkuK3kuZLmmLrkuqHlspHmtrPmiKTlk4Xvv6nliKTmlY3lgajkvp7ls6HnnJnpgqbku43vv7/mioTmmI3lp7fku7LnmY3igrzlvKLot5HigJPvvrrpgKrkupDljofkup3lhrbkupHvvZvovKXmmZ3lpLTnl5Plk4HvvJHigYMYGcORA8OQOG3DmHs7w47Dhi8rMsO/JCsnI2ZjVsKfeMObd3pbw43CjsO2w6zCq8OUN+KDj+ihhuS4o++9leeYmuS9guS9p+S6j+OCjeWvguS4se+/uOi9r+afoeWGv+WlnuWzm+Wnq+WptueWnOaUnuS4o++9rOS9jeimluW+sOaIk+S6muWFouWkuOS6n+S5leenpOeIsOWktOS4heeBu++9uOKDueafjOiIveabs+aOsOS6ueS5lOiBrOi8jeebr+ekjeWPn++/pOmfjOWHjuebtuWrqe++kuexruiGoOeYq+iAhuWejuOAjMKlwqLDssOMEmLCkcKLD8KiwpFSIMO8w4XDp3XCjcKZw4Viw48ceR4wwp8yA2jCp8KlwpkEwrHCvOS5jumegOaeveS7pemivuiDrumTsu+8u+Wdv+eBleWGkuS6kOmWv+mUhuWOouWEnu+8j+aZk+ijsueZreaeuOiLnuaYqOaYhOWIqO+/kumpo+makui9meS7iOOBusOLw6d5HMOhIMKpw7h8b2/DosOwwqzCl2/DqWXDrcK3wo7CoAlRw41fwpJvwrrDrD3DhcKZw6kqw5vigZjml5/lvZPvv6/miLzlh47lpovnmIfnprznioTvva/nubjlr7/ovJLlia3lhZblnKfjg53igLPnp6Tpo7jopoXmnY3oi6PmmavkuLjnlbXmsozkuarvvofnr6/lm7DlmqPnmJHmn4DlipPmnb3oiIvmmIvouYvovaDvvqzkupPovLflu5Hlp7vmj7nmk6DvvbTkuozovovorJnpgKXvvoHigbzmiZrmmo3kvaLogKblh6nvvbDmmp3mnbnlrrvnm77lpqLlqaTvvKLov77kuaDpnKPlrqnvvqbnu47lrLbnuZflkLXkuLnmnqTlrp3mjrfot4Hku6jjg7figpjDkcOkwqfDtDIlC1XDt3cSwrxFwogAVMK2RcOKw5PDjcKZEEHDpW5ifjzDksKQw4jDhMK5TmrmnbPoiKnmm4nku5vovobljofnnrznn5Xnn4PnnbTku6Xlj7/nn4bnpKDpo5LnmJjmj53mkLPvvr/kua7ovbzmg6Tku4/kuZPkuJHorZvpg4/vvazig4bkvZvor7nnmLzovpnliJflhaXlnpLvvazkuZfkvJ/lsYXmm5fku5HmroPkvqrnuazmiL/nnIzpgrflnKDpu4nljpvnnYblkavvvLjigI5kw7oENwLDisKjwq/Cq8KgG8KDLx7DgHBcX27CoVvDkWnDrcKHf8Kbw78Ww7pHwqTCr8OlMEPig5flm7TlmrvvvbXljbjliK7lsrfnnaXkuoTpg4LlnIjpubfljZjnnZzvvKrphpLpnaHmn5XlrLLot7nlk6zjgbzkv4zlsIbljZfnrpXmlpDkupPnmpPkubzlvrPvvaHliIvml5vlg57kvaXku7rlpbjlqpzlrLDvvpTku6rkvZDkuI/mioPovI3kurjlr4rlpprlqKPkuIvojonnm77jgqbig5Hnp7HpoK3kv7vlvrvlj7zot5Hnmq3oro/pg5DjgJjCpnfDkm3DvcOmEh4rVA/DuXUwwpLDrcKWw4bCpsK5NcODw696SsKHM8OKw5pxXhzDr1QGw4rigIHpgKPlpLrlk7fvvK7nrLrku4PlkYvku7nppaTvvLblkJnkuIPlhYTljoXpgI7oo5XvvbbpooHkvaznuJjkvYrkurXku5/ku47ooYvmnqTjgqfigIjmnrjoib3mmb7kuZLnuqDmgpTkuqnkuILku57vv6nohIHlt57ovLDogoTlh6LvvJPohrLkuobig7jlj6/ogoHmmJTigZjku6Dmnqjvvqjno7XlrZbmr6TkuZLkuYDpgaXln4Pku6XnmZfmjKvmj4nkubLku6DjgrkjAxvDn13DiE3DpycBORbDo3B7IsKdesOMMwHDp8KGw4fDoMOUCjnCg8K/wqfCiSUxw4Ft5pax54eq6K6R55uB6YK65Lii5pyx5omS5o+c77yC5pyq6Iu95pqm5Lme5oaK5b255YSE5Y+a5oyA6YKL5Lio5Luv56ew54i75Lmc44Gy5Lqo6L+e77y95Liw5Lmi5aS75aef5Lq554Gr55qk6KOp5p6A5YOc5piM55+U55qu44OVE3R1w5VpH0XDucK4w7rCoC/Cjx1twqYlN0ciwqTDmA7DnsK2w5LDk8K2woDDqg57esO9wrpx4oCJ5Lus77205b+T54ev6KSZ5Lqu55m3776n5Lmw5q+B57ix5ouf5Lik776G6L2k5p+I5L2U772d6L+H5p2W54iG5aW/44KJ5ZGb5Lqs6YGZ5Li25Lmf5LmY5aWX5pSQ55qM44Ce5p+X772v6IKf5am744Ch6KyJ56+557i244CG4oCh56e06aC25LmW5pyu5aSD5biu5LuM5pGP5Yeg5Lm15b6N5pSb56eq5p6k772a5q+X5pig6YC+5aWr5ZyX6au25bCh5aSf55Cv5Z+X77+05LuT5pyp5a6u6L6m5oq55LuU6Laa5p6k55mW5LmJ5Y6Q5Luq55iZ5Lqc44Ctw6RxdADCocOGERbCrRlbwoZywrnDgsO2w4lLFhoJwqDDlsOIw7oTT8OeYMKqEMKaBQfDmsKF5p206Iue5puU5oyi6L6x5pSp56am772v5oCh6K215LmD5LqM5LqD77+56K226YGC77yq4oCY5L655ZCJ5py76L+Q5Lui5aWJ6ZC/77yK4oK+wqHCkMKQwqbCjit2wqAKI8O6f8OhAcKDF8KxwrPDvsKuBcO4BcO7woLDmsK5bhlNHcKyw5RKVcOk4oGe5p+j5YCB5a+D6YOd55qm5ZKU44GQ6Z6O6KWJ5ZOB5oqM6LSI6au45bGa5aWS776s5oiQ6YCY6K+85Lu/5Lqn5L2Y5oi4772n5LiJ6L6Z5o+o55+h5LuN5pWe44Cz57iS5pyx77+65Lm85Lmb5bGO5b6I772m5bCe5oqB5Ye+5LuBAcKe6aOM5Lu85p6D6L6E5raS776x5LqS6IeI54eb5bO36IGA6ICa5a+d5a2m57iO6ZOT5LuN44Go4oOQ56Wb6aOo566z5Zir5Zid55mh6K2U6YGV44OUw7AeeBVlKxjCs8OIwooXQWrChcKAwo3Cn0AIMWPDtQdnW1wawpsBw5bDscOWw53Cq8OCwrnigZTCtR/poJ3kupHmnpLovKTmt63vvKDig7fmnqroi4Xmm5zmp7Pkuq/ku53mhr3vvJvohaPltpfogYvlhanovrDmnp/ovITnrbbmi7/mnY3vvY7CosO+wpY/w4rCnWzDohfCjMKlwoBPw7TCo8OGw67DuDB6AcONGsKYw7IXw7xGwqnClMKJdxPCuBnDmuS5qOi+s+++uumah+WPneWTteS7gOS7v+Wgj++8hOivgOmAo+++teKAvui3puazlOS6j+WNoOS7i++8vOS/qui9rueeguaUuui0nOWWn+++g+S7ueS4rOi+vuS5puWSgu+9ueKAp00xPcKkccODYsOFNV88esOfME1sw6TDugbDtEtlw6vDgMK3BcKew6PCpMKXKmwwQGnCqOKCl+i+nOS7p+axiuS4uO++rOWmluS7meS6juaJpOS+ree4ouWPlOS4m+Wbq++/gOS6vOWPs+S5u+iDp+Wsq+i+teabl+acvuS6suWGt+eZieOAkeKBgOekpemijeWcr+eutOecjOitmumDg+OCiMOFScOYw4ZAwoTCv8K4wqgafzXDs8OVwp85ZMKqwqbCjXnCt8ODw49/SE/CicKjw4rDmiTCgsOIXcON4oKW5rih776i4oGGw4zClQtzwrlxC0sBwpjDqCtkEGPDrwIIwpYGw5wQbsKTw5wOIHILwqVIHEcnDn3mnIXoi4HmmIHmiZ/ml7XnpLnmibfkuYrotqrmnL/vvJnooLPovY3pkIXljrDphprvv7vnha7lkYrorJTpgqLvv6zigIHmi53lu4zkvLrlr6PotI7mnrTvvJ/nrbjkv7Dku7flkJPmgL7op4Xlg5bku7fmgbrvvY7lsoPmiLDmiKjop7Hjg5LigoHCplTDlk3CrFjDsDnDr8KLORxOZXxKaENqwpZPesOCwophw6glwpUHw5oPOyNMd8Kl4oKQ6KWj5ZW15Zau77+z6IGv5Yej6Lat6ZGB57uR6IGB5auU6Iik77y75aeo57mu5ZyA5LuL55ql5ZiK772A4oOb56ed6aCC5oi655+E6IKO5Yyj6K2z6YOq44CHwot1N8KKQ8OERjrDvMO5GWTDk2zDtsOEw7Jtw7TCpFxmw73DmEHCi8KOUsORNcKxKcKyLsKULOKDn+WWje+/keWNueasneaKr+S6muS4teS9guS6nOiLku+/h+WunOWcv+mApumGsee4j+WtveWvpeS4peWki+exlOOBm+KCj+i8s+WOneispe+8hOaclOiKneaavOaanOS7luaEluitkOeZj+iHluWOieiCkuWEhOOApeWmhOagqeaclOayuOaBiei/neWSmuengOmjkOemjOWpg+OApMKHwoNCwpDCrlBZw5s9YcKWe2VxDzfCh8O2w7hdw4cmwqlgwqURwrTDv8O8FsKZwozCnsOtwqbDv+imtueeiuikq+elnOeaquisiu+9veWesuS4iOi+veaYoOKCpeeYmOeXheKBu+eaueaVsuWBne++u+adheiKouaZq+WwlOenkuS5k+OAoMKBBFvDnnLCksOcw4VIw6bChgnChcK0TMOiwr1mw5Iow65awoPCvgjCg3xvJBHCr8OzdsOwMXvlpofkuJnnnaTpg4fvvK7nurXnn4nlia7ovK3ku5LnlZnkuZHnlqPlh5HogZrlp6PvvYTmmLfov7jml73nmrzkua3mgrTjgrXCjsOQwooRwrQBMcKnLGpTw7jDizbCtRrDs8OmVF5Aw63DlBctFcOvNinCiMKxPUDDiVbDnuiCguS6gO+/iuemoemgiOWLuuaLvemDhOWMm+KBnuiCueWGlei3vemRn+iDteWrpOiLiOKBlO+9oeitm+adnuiJo+aYhOW+qOaFm+WKkeODrlPDs2nCpG4GHzUXw5cofsKYcRfDpcOKHcKgw4YYwpkQD1rCk3TCgV/CnsOaScKEwp19Jeellumji+WTluWRgOevquS5v+S4ou+/j+eaneecnuafh+iLs+abmee+leiJqueZpuiHl+iatu+/veiupOmAse+/iOKBqemCs+WKreaUqOWDuO++lOaLoeWLp+WJgeeDku++oeS7t+WOm+eWvOS5neWuhuWOpeiBluiCiO+8q+S7gOiCuOiCvO+9kOWYjeiAhuiAsemBueihiO+8jeWPhuavs+WSnuS7muS4v+W0iemSheOCiOKBvMKzIcKKWsKxwq0LwqNoL8Kgwo7DlngLCyMzwpATTjbCrAlfaxA1w7g8wp4rwqfCuMKsIOKAhuWPiuS8oeeatO+/v+i9n+S6s+iDqeiCr++9vOWYieiBv+iCgO+8uOW8tOaLuOaYnueMp+WXgOOCleKBreadkeiIo+aYlee+guS4uOS7rueYpOeevuOAoXXDkQfDtDrClARnw59NZ8Osw5UcwpQrwqFxWhoDd8OiwqnDlsOFw43DgiB8FcKiXsKOcMOb4oCK6IOe5aq+5L6x5b+454aI5LuJ5puB542g77yG5L6/5puR5bGZ55uf6I2g776P5oib5oig5pqr54295ZuD44Kk4oCH56eQ6aOT5Z+v5p216Imi5pqL55uX6ISL5a+c5Lif5Zeq5LmJ5Lio5Y2h772q6YOZ5rac5rWn55qF5bmS6aWm776N6K275LuS5p2E5Lif5b2f5paH56S/5oKr44Cb5ZS057in5rqy5Ymo5Lmi5LmC5Lux772N4oOa6IG+5auD77yU6KyY55yS55i/77yE5L666Ly96aGA5bKL55iT6Iyh77yl5ZWw5pWz5YOe6K6R5oqj5om+5Za777+E4oGTw6hGw4YmOsKzO8Odw4rCl8K8w5ltwprCicO6REjDri8sw7bCoUcZwro+w40sw54KwqvCrMKuQsO94oO5552+5Lyx6KCc542J5Lm477yi4oCF5pyX6IuL5puZ5omB5Lql5LmE5bOD5Zuo77+656me6LeP5p6E77yt5Lq755e45Lqn6buR55u06ZW65Y+O776Z4oKa6aeh5Lm1776z5LiF5Y2f5ZO26aSD5Lqd44C44oKIwoFWw71Jw4AXOwrChXXDmcKVP1XCp8KswrXCtg7DgQEBw4ZLw51Jw5xpw5oLCVd7w7xmc+KAremDs+S5jeaYiOS7kOigkOS7h+iji++8huKBisKSE2PDr8OBw6RpI0dHVXZ5Z14pw5AMwpXClhvCqQRFw5vDjcOgw558w4vDgwkww6XCuCXnpKfpo63nmJDnnKbmnq/oiYzmmovmgqLmhaPmkpjkuY/nmoXogo7lvKTvvrnmuYXmg6rmnZrlvp7nmLjploHpgYTjgZs=", "PUQj" +)) \ No newline at end of file diff --git "a/27-345円224円220円351円207円221円346円226円207円345円255円246円347円254円254170円JS351円200円206円345円220円221円350円247円243円345円257円206円/xiaoshuo.py" "b/27-345円224円220円351円207円221円346円226円207円345円255円246円347円254円254170円JS351円200円206円345円220円221円350円247円243円345円257円206円/xiaoshuo.py" new file mode 100644 index 0000000..91e51f6 --- /dev/null +++ "b/27-345円224円220円351円207円221円346円226円207円345円255円246円347円254円254170円JS351円200円206円345円220円221円350円247円243円345円257円206円/xiaoshuo.py" @@ -0,0 +1,30 @@ +""" + @author: 挖掘机小王子 + @contact: scrapy@qq.com + @software: PyCharm + @file: xiaoshuo.py + @time: 2019/12/1 13:26 + @desc: +""" +import execjs + + +def get_js_function(js_path, func_name, func_args, func_args2): + ''' + 获取指定目录下的js代码, 并且指定js代码中函数的名字以及函数的参数。 + :param js_path: js代码的位置 + :param func_name: js代码中函数的名字 + :param func_args: js代码中函数的参数 + :return: 返回调用js函数的结果 + ''' + + with open(js_path, encoding='utf-8') as fp: + js = fp.read() + ctx = execjs.compile(js) + return ctx.call(func_name, func_args, func_args2) + + +if __name__ == '__main__': + text, flag = "GVhAMMKMw7E0YMKSw6TDp8KRFWhPw6s3woTCgCXDtMOXOX3ig6nojavvvaTkvK7kuYrooK7ot7XvvofogYflr7PkuKvlp4rls4nlpI7lp5nmlqnmiLfkvaDku7bpoZLjgKXigYNLesOmw6HCkcONwrw2DMO0ccKvwo7CiMO0wp7DqcKHw6AxFh9dw4Rcey41bcKVw4JXQDsIGuiAt+ispuWtpOS6kuaBguS4i++/suasmOWOqeS7jeiBhuWGmOaLmeS7jOi/qOWNl+++l+eEvuWTjeaTrOWHtuaLk+mQtue5l+S/m+aUoOaMguWmt+S6huaJveS6s++9sOKBgOi2p+iDjeWusOWNqOituuWxi+Wysum5qeWxvO++jOWnqeWnruWNh+ecquS7r+S6suODvOKDhcOxfsKnwo5Dwrtzwo/Dt3AEwpHDiD3ChcOcwoJ4w4LDtMOtEsOpwrPCgcO6w5bDr8KiO8K2ZGtBQcKO5LmO5b2K6YWV5Y2h5pq35riU5qSk55i75b2O772h55+q5Yqi6L+255SD5Lq/5pu15YiF5bGz6ZSW55u36IOd5YSI776r5L+55Lu/5YOPYemDmuWrg+S4jeaLquemsuS/l+S6u+Whiuadj++8mumCl+S7tuabp+i0o+edm+mAuuS4n+WliuWQqe+8pl1iIHDDjMOqw5E6NcK5wqZcwrwvZMKdPmstwqLDj1sRc1bCphLCt8OSJg5NaMKww5Mz5LmA5a2l5p2+6YOn5Lmi5Y255a6055qK6IOj5amz5pCG556P77yc5L+T5oGE5L665YeY5LmZ56ao5L6M5Lia5aGz77yiN8KKfcOUwqJwOsKLwrkraUJPWcK4McKBHcK+wqdbwphqw43CilXDmsOpwrXDpTrDjRTCosKUcuilq+aat+eci+eanOWMkeWIt+S6lueDluS+v+Wvje+9remAi+asvOWlme+/leS7q+S5s+WJmuS5l+++tOi8r+iFr+W1teS4sui3j+aQleS6j+ODrsK0FUvCtBPDosKxwqNqbsKMwqwldxIjw7gmMcKKF1tMwrpZcTc/w7NQwrYVICFfK+iDt+iuqOWvquaJn+S4o+S6oeiBkeWFlOi/qOS6q+iksuaDvO+9q+WNoOi6suS5veS8uOaVkeaOjeWmh+S6nuWHmOiFm++8tOKAi+aZuOWlkeWwjOWNkeaItei+kuS4l+aKuei8iOe5tuWOkuS5tu+9n+ilguWFreaWiuaBq+S7le+9keWxouelqOWphe++suKBjsOdwoxRCMO4esKtJsKresKHw7DCksKCSMKQHsOPw6nCoMKLJMKwRTbDucKXw4LDtDzCpRrDgTHDvVvogJnor6nlrpLkuZfovKnmi7jljJrlkKDljoDplqTnmLzkvormlpvmj6LlpYLku6jmjLTkuKnor4jovo7vvIzovrjkuL3ovY/lh4fnn4znpYPpoKbotqHnrK7ora3pgrrvvY3ig57kuLvlpLTmhIjmgpfllrnvvZXlvKjnvYXku4HvvYPlvIPnvLjkurjvvZrigIjDvH44w4ZrUsORwpomBX0GG8OvwpJxT8OZPGwxwrjCncKqaE9hwo5Pw5IEw50PwqjDvRnnpo/popjkuYfmsYzmlJDlnpblvYbkuYHvvb/lvKvlva/ngaDkupHkupPlpa7vvpLmiqblrJPnmrToiYboiqvorKTpgZnvvoDig6votqHlkpPvva7ovJbnpKzkupDov7bml6zkvpnmorHotKjlpJLnmo3jgpPigbDDmsO3w60KWB5Sw7JbBhHDnMKRwrZvGgIZQMKrw4LCsynDsFNxWH/DqsOBRMKwQsOwJ3jigqHllbfvvZnkub7lpL7ospfosLPkvo3jg4vig4PnmZPoipXoiZHnr5/ku5PkuZvvvIjljqvlk6/liL7ku5TlpKHovYfvva3kuJfnmr7miqbnpLDpoZXpgZHlmILkuoDlibHloJzpl6blj5fjgb0masOFQH8QZ8OiwpjCkcOnwqgteMKcw4QHJcK0w6M9wqVgfsKLwpZfw4NVKiRZwrZgL8K46Zq45ZOO776H56SN6aKI5LiP6LSc6L+m5Lq65Yu85aK344Kxw7rDimYNcsKRw5wTwoYvMsK0UGzCjsKEasO8diTDr24+MWLDkmxQwr3DrsK2wpgZXBbCoOWLp+WIqei9pumXnu+9uOWztuecn+WJl+afs+iLveaYt+WfiOWfmeaxiOWPnuS4gu+/seauhuWFjuWGguealuefkeeduOiHlOW1tuOAvumjseaVnuintOW9jeW9humGieaduuS4oeWNg+iak++/oOitiOisleeZnOWXoumAtO+9keKCvOiAn+Wpve+9v+KDkMKywofDucOJfkBKeUNjIsK4VsO6Q8Kawo8/woRawpXDjcKYMXUcM8K3FsKpPMOqw43ClsKrw6jmn5joi6vmmqTnqprkurPot63mnqrvvZfmkI7kuq3np6Dpo5nku4HnnK/vvbnkuYnovormnK/nnInmpKfku5vot6HljJfvvLzku4Pova7orLjpgLDvv4PigZvku43mnJfvvLDmiZDmnITkurnot7Tkv7zoraPvvr7igrbCkRZGwoDDmnYdZcKoTcKOH1JpNnbDm2cWw7VswrLCp8KrwqV5woQ4D8KXQsOVwr/CumI64oOq5ZCO77+L4oG+Q1LCqcKMwr/CsMKOCsOuRy8ewoNIJsKbG8OJAxABLwpcw6TDtBzCoj4pw71bwoXDuMKIwojnprbpoJvmgKTmgrLnm6jlu4Lku43kupbloLrvvbvotbTlnK/mn7joia/mmbbou5jlk5Hvvo/kuZbkuLLkupvliZ/kuZflkKDot77ovKPku4Lmi4XplL7jgLFoe8KTwpHDrMK+w5rChigmwrJkcS/DvMO9wpfDnMK0NcOsw67DhSvCuMO9woLCvTwCw7lZwoR+N8Oq4oKw5omp6ZW35YSW5Lm944Go4oKTDmvCsA3DgcKgw7bDpXFJw6rDhERcF3zCmsOdwoXCtsORCMOLKcKmw5vDnWklw517w4pnw7hpwpHmnKboiKHmmbHnqajnn4nkuqnku5vpu4Hoi7Hnm4TnnpXooqpL5oKb77yA5pug5b+D55uz6IG355iR55uy6ICR5rO95aiG44CW5rOt5aGx5Lmi6Iq655iD6ZaC5Y+M77+R5oiS5Z+V6ICE5Lmy77yp6YKv5L6L5Lm/5Luw5LuG6IWu5bq2772955+96Lex5pyZ5YSu6IiK6IK25oG85oSJ44OowrzDjSJewovCm8KVCBLCnXd7ScK+bjtcYRTCvcOIBlVPwrLDscOtwq7DoMOIw4rChsO/QCbDiuWfoeWdqOW6seaypeS5m++/jea8oOS4neeamOedu+WvlemGgeWGn+WEgOi+iui9u++9lOKAt+WPq+S4iuWVo+ODr+S4qOS4u+aekeS5v+WKke+/h+WSreeaq+iKjOiJnuS6suWJj+S7luS6sO+8jOKDiSdeKsKke8OywpbDt8OowqnDrsOeZ1PCr8KCbVApasO9McOEdcOawrMEYsOBFRxsOsODP2PigpzogLTlqZ3jg5DlhprmnKzvvLLnuZnlrrHnmablhq7mnKzvv53igpnnp4bpoZ/oppXop6jnnLjnnKXnm4LlnKrlnLbmspzljLzkuJHvvZLkupzohYnlt6bova7opIrvv7/igrHmi4Lmmoflj4rnm4Lni5HkuZrlrpTph5zvvpDnurbkuK7nnaLnl4TvvKblgqTnhLDpgrrli67nmY3oiqvoiaHnmZfjgITlhY3orZ7kuZnvv5jlpYbkurLnmrrlrLrmi6nlhaflm7XngZ3orZTnm4bvvY/miLXmgKjkubbljKvogIblr4/lpY3mhI/lh43otoPlmbvvvprigp7DsMOWb2kLw6TClMKIw69Gw5vCrCzCv8OdwrRXCD9ZS8K2HUwFFMOGwq7ClMOKIR3DgkjCt8O94oKe5ZON77606YC55ouz552A5L6O5oqR5L+J5ped5oyu5aSZ5Lq46YKr5Lqo6IOK5YW777yT5Y6H5ryj5raR5Lil44Ki6Lyl5LqI5Y+35piS55qL6Iio6Iit5YaS5ae65ZO477yD4oKL5p2t6Iiz5pim5Lu8556R6L+D55ib5o6977675LmI54W45LmU5Lmd5L6H57qv6YKP5oqc6Zen5omf55WZ6KyS44O/w6bDlMOJCsOXwqrCh8KnwpDCvnbDlMOlwopIRhc9wr7DtcK7wqg6KgfDpFk9G8KjSi4/w6ZeL+WkpuW9heiugOWvreS6peacjuS5heWHheW7qeS6se++g+e7sOWthOS6tuaaiOS4qeS7teW+teelt+iIg+W+q+ebseS6gOOApQ9Yw6rCiMOYSsO6EX3DqyLCvD14wqbDs1fClMKcbMO8w6MhERZ5eGNeccOKIh1LdXzopKbnnqLmmKjnpKvpobrkua/lrr3vvJ3lpbLljavkvoDor4vlkLnkuJ3npKDlh6TlponnkZTjg57CqkAsMBjChEDDnxbCp8Klwr8zwpXDuTDCn8KjHwbDh8OXwqNjw54dMsKzw4V0UCjDpxrDoDPnpKfpoKboi7fnrYDkuKrkub/kuITvvZvnnYPnnJfmnpvoiKrmmJTlhozlhZTlhZrnmozlsqbohZbomozvvZHogonlvZnnmIror7jpgofvv6DigLLog6jlq7Pvv6ropq7mmrPkvbflnZzlnqPvvKHpgKHlp4DkuIfmlIbmi6bkvI/ogpflhpzvvrrmibHnu43lrLvku5Lmma/kuLjlt5PmjabovJvlmY3lj7bvvYLog5jmmY7mi7nlpaXmi5zpgannuazmiZrmlZXjgI/kvY3ml6nlv5Pvv4TmiYXlv5TphJjnn6bnmK7ljbXmn4/kvbvkuL7kuJvkuYXnmb/vvJzigb/Dg8OxVsKGMnnDrR7CtsKYw4XDpMK/XsKfW8OGDcOgwpYUw75rUmnDrGMTIcK2UwDCmWx9w7Dig4DkuIjog4LngqTvv5Xls7blrqXnmrDnravohL/nm6jvvKnpg7Hmso7orJ3pnoLlj7bmmrHmg4jkuo7lmKjkubfvvqvop7Pku43miJnkuqPluITohJ7miaLlq5rnpYTkuqjvvZnkvo3mgrLmiK3lpZ/ls6Hlp43ku4/vvLXpg7Hlk43miZXmlIvlhKDvvoDiga/mnqnoibfmmaPms5PmgofnmqforobpgJjjgKbDngB2w7zDoR7DgsORf2QeezzCtTrDj0YOA1MWbMKmwo4hwr48wpYGwrhYY8KIXcOtEeKBlOWIgeWWmO+9nOiCmuWpouOCh+aKh+S5uueaneWPn+ableaIgOaxo+isj+mfkuW+jeaLrOS6mOS6tOS6t+S6qe+8iuWkqOWkt+OCneS+qeS4lueegumAqO++hOaKmOS5i+Wyp+WegeS8kuWviumFhemWgeWmuO+8heayluaev+S7ieS5rOadruWPr++9nOabp+awg+S6quS4q+S4oOaJueODnOS8j+S6g+eesuWJpOS4o++/tuWno+S5qeS6meWmquWtmeWtn++9uumCtOWkmuWOqu++i+aLjembveW3ve+/gee6lueJuOS4qOedoeeWv+OCv+WtgOiJu+S/suS6m+eaou++l+aKm+aFueimn+WSoeaLh+WTh+eViOeahOaCju+/suaIi+S6u+aJmuWDo+WyveS+rOiDhOeysOOBqOS/oue4tuWviOS4guaZp+S9meaCoueZremDveenluWGl+eyguOCouKBoeenuemhhuS9qeiot+aWgOaVnueatuivoemAqeOAqHjCscKbwrE+P2tmwogYw47DsQHCscO/wplMw7PDkxzDs8KkwoHCj8KLwphCN8Ksw4fDlsOZUVLCv8OF4oKQ552R55ud5YyC5pqe5pic6YOu5p245Y6Y772y4oGk5p2U6Iqw5pqr5b+A5b6J55mV55yr55+i5aaf772/5LuB6L6D77+05byJ6YWj5Z2h5pyt5Lq35baS57iw5Lup55Sy5rCe5Lm744OOw4zDjcO8w4PCshPCj8O9w6DCgcOjw4sKVcKAw59vw6rCiSlew7HDmcO1wonChMOqBxUYHzNwwrcEw73igKznnL/nmYjvv4jnu6XlrrHnn6rnmbPvv6jigJTnp47poIfnqJrotrPkuY3mopTmiqbmjKzlpJrvvKvnm7TnnLPmnrDoiY3mm7XvvIfniZXkurvooI/ntZzooqPnnr/nmbTkuLvmnprlno7mtoznvbLohIHvv5PigIDopJXmmrXkv4bkuqzmloTlv6fvvIjlkqvkuK3kuZLmmLrkuqHlspHmtrPmiKTlk4Xvv6nliKTmlY3lgajkvp7ls6HnnJnpgqbku43vv7/mioTmmI3lp7fku7LnmY3igrzlvKLot5HigJPvvrrpgKrkupDljofkup3lhrbkupHvvZvovKXmmZ3lpLTnl5Plk4HvvJHigYMYGcORA8OQOG3DmHs7w47Dhi8rMsO/JCsnI2ZjVsKfeMObd3pbw43CjsO2w6zCq8OUN+KDj+ihhuS4o++9leeYmuS9guS9p+S6j+OCjeWvguS4se+/uOi9r+afoeWGv+WlnuWzm+Wnq+WptueWnOaUnuS4o++9rOS9jeimluW+sOaIk+S6muWFouWkuOS6n+S5leenpOeIsOWktOS4heeBu++9uOKDueafjOiIveabs+aOsOS6ueS5lOiBrOi8jeebr+ekjeWPn++/pOmfjOWHjuebtuWrqe++kuexruiGoOeYq+iAhuWejuOAjMKlwqLDssOMEmLCkcKLD8KiwpFSIMO8w4XDp3XCjcKZw4Viw48ceR4wwp8yA2jCp8KlwpkEwrHCvOS5jumegOaeveS7pemivuiDrumTsu+8u+Wdv+eBleWGkuS6kOmWv+mUhuWOouWEnu+8j+aZk+ijsueZreaeuOiLnuaYqOaYhOWIqO+/kumpo+makui9meS7iOOBusOLw6d5HMOhIMKpw7h8b2/DosOwwqzCl2/DqWXDrcK3wo7CoAlRw41fwpJvwrrDrD3DhcKZw6kqw5vigZjml5/lvZPvv6/miLzlh47lpovnmIfnprznioTvva/nubjlr7/ovJLlia3lhZblnKfjg53igLPnp6Tpo7jopoXmnY3oi6PmmavkuLjnlbXmsozkuarvvofnr6/lm7DlmqPnmJHmn4DlipPmnb3oiIvmmIvouYvovaDvvqzkupPovLflu5Hlp7vmj7nmk6DvvbTkuozovovorJnpgKXvvoHigbzmiZrmmo3kvaLogKblh6nvvbDmmp3mnbnlrrvnm77lpqLlqaTvvKLov77kuaDpnKPlrqnvvqbnu47lrLbnuZflkLXkuLnmnqTlrp3mjrfot4Hku6jjg7figpjDkcOkwqfDtDIlC1XDt3cSwrxFwogAVMK2RcOKw5PDjcKZEEHDpW5ifjzDksKQw4jDhMK5TmrmnbPoiKnmm4nku5vovobljofnnrznn5Xnn4PnnbTku6Xlj7/nn4bnpKDpo5LnmJjmj53mkLPvvr/kua7ovbzmg6Tku4/kuZPkuJHorZvpg4/vvazig4bkvZvor7nnmLzovpnliJflhaXlnpLvvazkuZfkvJ/lsYXmm5fku5HmroPkvqrnuazmiL/nnIzpgrflnKDpu4nljpvnnYblkavvvLjigI5kw7oENwLDisKjwq/Cq8KgG8KDLx7DgHBcX27CoVvDkWnDrcKHf8Kbw78Ww7pHwqTCr8OlMEPig5flm7TlmrvvvbXljbjliK7lsrfnnaXkuoTpg4LlnIjpubfljZjnnZzvvKrphpLpnaHmn5XlrLLot7nlk6zjgbzkv4zlsIbljZfnrpXmlpDkupPnmpPkubzlvrPvvaHliIvml5vlg57kvaXku7rlpbjlqpzlrLDvvpTku6rkvZDkuI/mioPovI3kurjlr4rlpprlqKPkuIvojonnm77jgqbig5Hnp7HpoK3kv7vlvrvlj7zot5Hnmq3oro/pg5DjgJjCpnfDkm3DvcOmEh4rVA/DuXUwwpLDrcKWw4bCpsK5NcODw696SsKHM8OKw5pxXhzDr1QGw4rigIHpgKPlpLrlk7fvvK7nrLrku4PlkYvku7nppaTvvLblkJnkuIPlhYTljoXpgI7oo5XvvbbpooHkvaznuJjkvYrkurXku5/ku47ooYvmnqTjgqfigIjmnrjoib3mmb7kuZLnuqDmgpTkuqnkuILku57vv6nohIHlt57ovLDogoTlh6LvvJPohrLkuobig7jlj6/ogoHmmJTigZjku6Dmnqjvvqjno7XlrZbmr6TkuZLkuYDpgaXln4Pku6XnmZfmjKvmj4nkubLku6DjgrkjAxvDn13DiE3DpycBORbDo3B7IsKdesOMMwHDp8KGw4fDoMOUCjnCg8K/wqfCiSUxw4Ft5pax54eq6K6R55uB6YK65Lii5pyx5omS5o+c77yC5pyq6Iu95pqm5Lme5oaK5b255YSE5Y+a5oyA6YKL5Lio5Luv56ew54i75Lmc44Gy5Lqo6L+e77y95Liw5Lmi5aS75aef5Lq554Gr55qk6KOp5p6A5YOc5piM55+U55qu44OVE3R1w5VpH0XDucK4w7rCoC/Cjx1twqYlN0ciwqTDmA7DnsK2w5LDk8K2woDDqg57esO9wrpx4oCJ5Lus77205b+T54ev6KSZ5Lqu55m3776n5Lmw5q+B57ix5ouf5Lik776G6L2k5p+I5L2U772d6L+H5p2W54iG5aW/44KJ5ZGb5Lqs6YGZ5Li25Lmf5LmY5aWX5pSQ55qM44Ce5p+X772v6IKf5am744Ch6KyJ56+557i244CG4oCh56e06aC25LmW5pyu5aSD5biu5LuM5pGP5Yeg5Lm15b6N5pSb56eq5p6k772a5q+X5pig6YC+5aWr5ZyX6au25bCh5aSf55Cv5Z+X77+05LuT5pyp5a6u6L6m5oq55LuU6Laa5p6k55mW5LmJ5Y6Q5Luq55iZ5Lqc44Ctw6RxdADCocOGERbCrRlbwoZywrnDgsO2w4lLFhoJwqDDlsOIw7oTT8OeYMKqEMKaBQfDmsKF5p206Iue5puU5oyi6L6x5pSp56am772v5oCh6K215LmD5LqM5LqD77+56K226YGC77yq4oCY5L655ZCJ5py76L+Q5Lui5aWJ6ZC/77yK4oK+wqHCkMKQwqbCjit2wqAKI8O6f8OhAcKDF8KxwrPDvsKuBcO4BcO7woLDmsK5bhlNHcKyw5RKVcOk4oGe5p+j5YCB5a+D6YOd55qm5ZKU44GQ6Z6O6KWJ5ZOB5oqM6LSI6au45bGa5aWS776s5oiQ6YCY6K+85Lu/5Lqn5L2Y5oi4772n5LiJ6L6Z5o+o55+h5LuN5pWe44Cz57iS5pyx77+65Lm85Lmb5bGO5b6I772m5bCe5oqB5Ye+5LuBAcKe6aOM5Lu85p6D6L6E5raS776x5LqS6IeI54eb5bO36IGA6ICa5a+d5a2m57iO6ZOT5LuN44Go4oOQ56Wb6aOo566z5Zir5Zid55mh6K2U6YGV44OUw7AeeBVlKxjCs8OIwooXQWrChcKAwo3Cn0AIMWPDtQdnW1wawpsBw5bDscOWw53Cq8OCwrnigZTCtR/poJ3kupHmnpLovKTmt63vvKDig7fmnqroi4Xmm5zmp7Pkuq/ku53mhr3vvJvohaPltpfogYvlhanovrDmnp/ovITnrbbmi7/mnY3vvY7CosO+wpY/w4rCnWzDohfCjMKlwoBPw7TCo8OGw67DuDB6AcONGsKYw7IXw7xGwqnClMKJdxPCuBnDmuS5qOi+s+++uumah+WPneWTteS7gOS7v+Wgj++8hOivgOmAo+++teKAvui3puazlOS6j+WNoOS7i++8vOS/qui9rueeguaUuui0nOWWn+++g+S7ueS4rOi+vuS5puWSgu+9ueKAp00xPcKkccODYsOFNV88esOfME1sw6TDugbDtEtlw6vDgMK3BcKew6PCpMKXKmwwQGnCqOKCl+i+nOS7p+axiuS4uO++rOWmluS7meS6juaJpOS+ree4ouWPlOS4m+Wbq++/gOS6vOWPs+S5u+iDp+Wsq+i+teabl+acvuS6suWGt+eZieOAkeKBgOekpemijeWcr+eutOecjOitmumDg+OCiMOFScOYw4ZAwoTCv8K4wqgafzXDs8OVwp85ZMKqwqbCjXnCt8ODw49/SE/CicKjw4rDmiTCgsOIXcON4oKW5rih776i4oGGw4zClQtzwrlxC0sBwpjDqCtkEGPDrwIIwpYGw5wQbsKTw5wOIHILwqVIHEcnDn3mnIXoi4HmmIHmiZ/ml7XnpLnmibfkuYrotqrmnL/vvJnooLPovY3pkIXljrDphprvv7vnha7lkYrorJTpgqLvv6zigIHmi53lu4zkvLrlr6PotI7mnrTvvJ/nrbjkv7Dku7flkJPmgL7op4Xlg5bku7fmgbrvvY7lsoPmiLDmiKjop7Hjg5LigoHCplTDlk3CrFjDsDnDr8KLORxOZXxKaENqwpZPesOCwophw6glwpUHw5oPOyNMd8Kl4oKQ6KWj5ZW15Zau77+z6IGv5Yej6Lat6ZGB57uR6IGB5auU6Iik77y75aeo57mu5ZyA5LuL55ql5ZiK772A4oOb56ed6aCC5oi655+E6IKO5Yyj6K2z6YOq44CHwot1N8KKQ8OERjrDvMO5GWTDk2zDtsOEw7Jtw7TCpFxmw73DmEHCi8KOUsORNcKxKcKyLsKULOKDn+WWje+/keWNueasneaKr+S6muS4teS9guS6nOiLku+/h+WunOWcv+mApumGsee4j+WtveWvpeS4peWki+exlOOBm+KCj+i8s+WOneispe+8hOaclOiKneaavOaanOS7luaEluitkOeZj+iHluWOieiCkuWEhOOApeWmhOagqeaclOayuOaBiei/neWSmuengOmjkOemjOWpg+OApMKHwoNCwpDCrlBZw5s9YcKWe2VxDzfCh8O2w7hdw4cmwqlgwqURwrTDv8O8FsKZwozCnsOtwqbDv+imtueeiuikq+elnOeaquisiu+9veWesuS4iOi+veaYoOKCpeeYmOeXheKBu+eaueaVsuWBne++u+adheiKouaZq+WwlOenkuS5k+OAoMKBBFvDnnLCksOcw4VIw6bChgnChcK0TMOiwr1mw5Iow65awoPCvgjCg3xvJBHCr8OzdsOwMXvlpofkuJnnnaTpg4fvvK7nurXnn4nlia7ovK3ku5LnlZnkuZHnlqPlh5HogZrlp6PvvYTmmLfov7jml73nmrzkua3mgrTjgrXCjsOQwooRwrQBMcKnLGpTw7jDizbCtRrDs8OmVF5Aw63DlBctFcOvNinCiMKxPUDDiVbDnuiCguS6gO+/iuemoemgiOWLuuaLvemDhOWMm+KBnuiCueWGlei3vemRn+iDteWrpOiLiOKBlO+9oeitm+adnuiJo+aYhOW+qOaFm+WKkeODrlPDs2nCpG4GHzUXw5cofsKYcRfDpcOKHcKgw4YYwpkQD1rCk3TCgV/CnsOaScKEwp19Jeellumji+WTluWRgOevquS5v+S4ou+/j+eaneecnuafh+iLs+abmee+leiJqueZpuiHl+iatu+/veiupOmAse+/iOKBqemCs+WKreaUqOWDuO++lOaLoeWLp+WJgeeDku++oeS7t+WOm+eWvOS5neWuhuWOpeiBluiCiO+8q+S7gOiCuOiCvO+9kOWYjeiAhuiAsemBueihiO+8jeWPhuavs+WSnuS7muS4v+W0iemSheOCiOKBvMKzIcKKWsKxwq0LwqNoL8Kgwo7DlngLCyMzwpATTjbCrAlfaxA1w7g8wp4rwqfCuMKsIOKAhuWPiuS8oeeatO+/v+i9n+S6s+iDqeiCr++9vOWYieiBv+iCgO+8uOW8tOaLuOaYnueMp+WXgOOCleKBreadkeiIo+aYlee+guS4uOS7rueYpOeevuOAoXXDkQfDtDrClARnw59NZ8Osw5UcwpQrwqFxWhoDd8OiwqnDlsOFw43DgiB8FcKiXsKOcMOb4oCK6IOe5aq+5L6x5b+454aI5LuJ5puB542g77yG5L6/5puR5bGZ55uf6I2g776P5oib5oig5pqr54295ZuD44Kk4oCH56eQ6aOT5Z+v5p216Imi5pqL55uX6ISL5a+c5Lif5Zeq5LmJ5Lio5Y2h772q6YOZ5rac5rWn55qF5bmS6aWm776N6K275LuS5p2E5Lif5b2f5paH56S/5oKr44Cb5ZS057in5rqy5Ymo5Lmi5LmC5Lux772N4oOa6IG+5auD77yU6KyY55yS55i/77yE5L666Ly96aGA5bKL55iT6Iyh77yl5ZWw5pWz5YOe6K6R5oqj5om+5Za777+E4oGTw6hGw4YmOsKzO8Odw4rCl8K8w5ltwprCicO6REjDri8sw7bCoUcZwro+w40sw54KwqvCrMKuQsO94oO5552+5Lyx6KCc542J5Lm477yi4oCF5pyX6IuL5puZ5omB5Lql5LmE5bOD5Zuo77+656me6LeP5p6E77yt5Lq755e45Lqn6buR55u06ZW65Y+O776Z4oKa6aeh5Lm1776z5LiF5Y2f5ZO26aSD5Lqd44C44oKIwoFWw71Jw4AXOwrChXXDmcKVP1XCp8KswrXCtg7DgQEBw4ZLw51Jw5xpw5oLCVd7w7xmc+KAremDs+S5jeaYiOS7kOigkOS7h+iji++8huKBisKSE2PDr8OBw6RpI0dHVXZ5Z14pw5AMwpXClhvCqQRFw5vDjcOgw558w4vDgwkww6XCuCXnpKfpo63nmJDnnKbmnq/oiYzmmovmgqLmhaPmkpjkuY/nmoXogo7lvKTvvrnmuYXmg6rmnZrlvp7nmLjploHpgYTjgZs=", "PUQj" + passwd = get_js_function('xiaoshuo.js', '_0x1262c3', text, flag) + print(passwd) diff --git "a/28-347円231円276円345円272円246円346円227円213円350円275円254円351円252円214円350円257円201円347円240円201円AES350円247円243円345円257円206円/346円227円213円350円275円254円351円252円214円350円257円201円347円240円201円.js" "b/28-347円231円276円345円272円246円346円227円213円350円275円254円351円252円214円350円257円201円347円240円201円AES350円247円243円345円257円206円/346円227円213円350円275円254円351円252円214円350円257円201円347円240円201円.js" new file mode 100644 index 0000000..e9e3818 --- /dev/null +++ "b/28-347円231円276円345円272円246円346円227円213円350円275円254円351円252円214円350円257円201円347円240円201円AES350円247円243円345円257円206円/346円227円213円350円275円254円351円252円214円350円257円201円347円240円201円.js" @@ -0,0 +1,722 @@ +var CryptoJS = CryptoJS || (function (Math, undefined) { + var C = {}; + var C_lib = C.lib = {}; + var Base = C_lib.Base = (function () { + function F() {}; + return { + extend: function (overrides) { + F.prototype = this; + var subtype = new F(); + if (overrides) { + subtype.mixIn(overrides); + } + if (!subtype.hasOwnProperty('init') || this.init === subtype.init) { + subtype.init = function () { + subtype.$super.init.apply(this, arguments); + }; + } + subtype.init.prototype = subtype; + subtype.$super = this; + return subtype; + }, create: function () { + var instance = this.extend(); + instance.init.apply(instance, arguments); + return instance; + }, init: function () {}, mixIn: function (properties) { + for (var propertyName in properties) { + if (properties.hasOwnProperty(propertyName)) { + this[propertyName] = properties[propertyName]; + } + } + if (properties.hasOwnProperty('toString')) { + this.toString = properties.toString; + } + }, clone: function () { + return this.init.prototype.extend(this); + } + }; + }()); + var WordArray = C_lib.WordArray = Base.extend({ + init: function (words, sigBytes) { + words = this.words = words || []; + if (sigBytes != undefined) { + this.sigBytes = sigBytes; + } else { + this.sigBytes = words.length * 4; + } + }, toString: function (encoder) { + return (encoder || Hex).stringify(this); + }, concat: function (wordArray) { + var thisWords = this.words; + var thatWords = wordArray.words; + var thisSigBytes = this.sigBytes; + var thatSigBytes = wordArray.sigBytes; + this.clamp(); + if (thisSigBytes % 4) { + for (var i = 0; i < thatSigBytes; i++) { + var thatByte = (thatWords[i>>> 2]>>> (24 - (i % 4) * 8)) & 0xff; + thisWords[(thisSigBytes + i)>>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8); + } + } else if (thatWords.length> 0xffff) { + for (var i = 0; i < thatSigBytes; i += 4) { + thisWords[(thisSigBytes + i)>>> 2] = thatWords[i>>> 2]; + } + } else { + thisWords.push.apply(thisWords, thatWords); + } + this.sigBytes += thatSigBytes; + return this; + }, clamp: function () { + var words = this.words; + var sigBytes = this.sigBytes; + words[sigBytes>>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8); + words.length = Math.ceil(sigBytes / 4); + }, clone: function () { + var clone = Base.clone.call(this); + clone.words = this.words.slice(0); + return clone; + }, random: function (nBytes) { + var words = []; + var r = (function (m_w) { + var m_w = m_w; + var m_z = 0x3ade68b1; + var mask = 0xffffffff; + return function () { + m_z = (0x9069 * (m_z & 0xFFFF) + (m_z>> 0x10)) & mask; + m_w = (0x4650 * (m_w & 0xFFFF) + (m_w>> 0x10)) & mask; + var result = ((m_z << 0x10) + m_w) & mask; + result /= 0x100000000; + result += 0.5; + return result * (Math.random()> .5 ? 1 : -1); + } + }); + for (var i = 0, rcache; i < nBytes; i += 4) { + var _r = r((rcache || Math.random()) * 0x100000000); + rcache = _r() * 0x3ade67b7; + words.push((_r() * 0x100000000) | 0); + } + return new WordArray.init(words, nBytes); + } + }); + var C_enc = C.enc = {}; + var Hex = C_enc.Hex = { + stringify: function (wordArray) { + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + var hexChars = []; + for (var i = 0; i < sigBytes; i++) { + var bite = (words[i>>> 2]>>> (24 - (i % 4) * 8)) & 0xff; + hexChars.push((bite>>> 4).toString(16)); + hexChars.push((bite & 0x0f).toString(16)); + } + return hexChars.join(''); + }, parse: function (hexStr) { + var hexStrLength = hexStr.length; + var words = []; + for (var i = 0; i < hexStrLength; i += 2) { + words[i>>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4); + } + return new WordArray.init(words, hexStrLength / 2); + } + }; + var Latin1 = C_enc.Latin1 = { + stringify: function (wordArray) { + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + var latin1Chars = []; + for (var i = 0; i < sigBytes; i++) { + var bite = (words[i>>> 2]>>> (24 - (i % 4) * 8)) & 0xff; + latin1Chars.push(String.fromCharCode(bite)); + } + return latin1Chars.join(''); + }, parse: function (latin1Str) { + var latin1StrLength = latin1Str.length; + var words = []; + for (var i = 0; i < latin1StrLength; i++) { + words[i>>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8); + } + return new WordArray.init(words, latin1StrLength); + } + }; + var Utf8 = C_enc.Utf8 = { + stringify: function (wordArray) { + try { + return decodeURIComponent(escape(Latin1.stringify(wordArray))); + } catch (e) { + throw new Error('Malformed UTF-8 data'); + } + }, parse: function (utf8Str) { + return Latin1.parse(unescape(encodeURIComponent(utf8Str))); + } + }; + var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({ + reset: function () { + this._data = new WordArray.init(); + this._nDataBytes = 0; + }, _append: function (data) { + if (typeof data == 'string') { + data = Utf8.parse(data); + } + this._data.concat(data); + this._nDataBytes += data.sigBytes; + }, _process: function (doFlush) { + var data = this._data; + var dataWords = data.words; + var dataSigBytes = data.sigBytes; + var blockSize = this.blockSize; + var blockSizeBytes = blockSize * 4; + var nBlocksReady = dataSigBytes / blockSizeBytes; + if (doFlush) { + nBlocksReady = Math.ceil(nBlocksReady); + } else { + nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0); + } + var nWordsReady = nBlocksReady * blockSize; + var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes); + if (nWordsReady) { + for (var offset = 0; offset < nWordsReady; offset += blockSize) { + this._doProcessBlock(dataWords, offset); + } + var processedWords = dataWords.splice(0, nWordsReady); + data.sigBytes -= nBytesReady; + } + return new WordArray.init(processedWords, nBytesReady); + }, clone: function () { + var clone = Base.clone.call(this); + clone._data = this._data.clone(); + return clone; + }, _minBufferSize: 0 + }); + var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({ + cfg: Base.extend(), + init: function (cfg) { + this.cfg = this.cfg.extend(cfg); + this.reset(); + }, reset: function () { + BufferedBlockAlgorithm.reset.call(this); + this._doReset(); + }, update: function (messageUpdate) { + this._append(messageUpdate); + this._process(); + return this; + }, finalize: function (messageUpdate) { + if (messageUpdate) { + this._append(messageUpdate); + } + var hash = this._doFinalize(); + return hash; + }, blockSize: 512 / 32, + _createHelper: function (hasher) { + return function (message, cfg) { + return new hasher.init(cfg).finalize(message); + }; + }, _createHmacHelper: function (hasher) { + return function (message, key) { + return new C_algo.HMAC.init(hasher, key).finalize(message); + }; + } + }); + var C_algo = C.algo = {}; + return C; +}(Math)); + +(function () { + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var C_enc = C.enc; + var Base64 = C_enc.Base64 = { + stringify: function (wordArray) { + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + var map = this._map; + wordArray.clamp(); + var base64Chars = []; + for (var i = 0; i < sigBytes; i += 3) { + var byte1 = (words[i>>> 2]>>> (24 - (i % 4) * 8)) & 0xff; + var byte2 = (words[(i + 1)>>> 2]>>> (24 - ((i + 1) % 4) * 8)) & 0xff; + var byte3 = (words[(i + 2)>>> 2]>>> (24 - ((i + 2) % 4) * 8)) & 0xff; + var triplet = (byte1 << 16) | (byte2 << 8) | byte3; + for (var j = 0; + (j < 4) && (i + j * 0.75 < sigBytes); j++) { + base64Chars.push(map.charAt((triplet>>> (6 * (3 - j))) & 0x3f)); + } + } + var paddingChar = map.charAt(64); + if (paddingChar) { + while (base64Chars.length % 4) { + base64Chars.push(paddingChar); + } + } + return base64Chars.join(''); + }, parse: function (base64Str) { + var base64StrLength = base64Str.length; + var map = this._map; + var reverseMap = this._reverseMap; + if (!reverseMap) { + reverseMap = this._reverseMap = []; + for (var j = 0; j < map.length; j++) { + reverseMap[map.charCodeAt(j)] = j; + } + } + var paddingChar = map.charAt(64); + if (paddingChar) { + var paddingIndex = base64Str.indexOf(paddingChar); + if (paddingIndex !== -1) { + base64StrLength = paddingIndex; + } + } + return parseLoop(base64Str, base64StrLength, reverseMap); + }, _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' + }; + function parseLoop(base64Str, base64StrLength, reverseMap) { + var words = []; + var nBytes = 0; + for (var i = 0; i < base64StrLength; i++) { + if (i % 4) { + var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2); + var bits2 = reverseMap[base64Str.charCodeAt(i)]>>> (6 - (i % 4) * 2); + words[nBytes>>> 2] |= (bits1 | bits2) << (24 - (nBytes % 4) * 8); + nBytes++; + } + } + return WordArray.create(words, nBytes); + } +}()); + +CryptoJS.lib.Cipher || (function (undefined) { + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var WordArray = C_lib.WordArray; + var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm; + var C_enc = C.enc; + var Utf8 = C_enc.Utf8; + var Base64 = C_enc.Base64; + var C_algo = C.algo; + var EvpKDF = C_algo.EvpKDF; + var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({ + cfg: Base.extend(), + createEncryptor: function (key, cfg) { + return this.create(this._ENC_XFORM_MODE, key, cfg); + }, createDecryptor: function (key, cfg) { + return this.create(this._DEC_XFORM_MODE, key, cfg); + }, init: function (xformMode, key, cfg) { + this.cfg = this.cfg.extend(cfg); + this._xformMode = xformMode; + this._key = key; + this.reset(); + }, reset: function () { + BufferedBlockAlgorithm.reset.call(this); + this._doReset(); + }, process: function (dataUpdate) { + this._append(dataUpdate); + return this._process(); + }, finalize: function (dataUpdate) { + if (dataUpdate) { + this._append(dataUpdate); + } + var finalProcessedData = this._doFinalize(); + return finalProcessedData; + }, keySize: 128 / 32, + ivSize: 128 / 32, + _ENC_XFORM_MODE: 1, + _DEC_XFORM_MODE: 2, + _createHelper: (function () { + function selectCipherStrategy(key) { + if (typeof key == 'string') { + return PasswordBasedCipher; + } else { + return SerializableCipher; + } + } + return function (cipher) { + return { + encrypt: function (message, key, cfg) { + return selectCipherStrategy(key).encrypt(cipher, message, key, cfg); + }, decrypt: function (ciphertext, key, cfg) { + return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg); + } + }; + }; + }()) + }); + var StreamCipher = C_lib.StreamCipher = Cipher.extend({ + _doFinalize: function () { + var finalProcessedBlocks = this._process(!!'flush'); + return finalProcessedBlocks; + }, blockSize: 1 + }); + var C_mode = C.mode = {}; + var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({ + createEncryptor: function (cipher, iv) { + return this.Encryptor.create(cipher, iv); + }, createDecryptor: function (cipher, iv) { + return this.Decryptor.create(cipher, iv); + }, init: function (cipher, iv) { + this._cipher = cipher; + this._iv = iv; + } + }); + var CBC = C_mode.CBC = (function () { + var CBC = BlockCipherMode.extend(); + CBC.Encryptor = CBC.extend({ + processBlock: function (words, offset) { + var cipher = this._cipher; + var blockSize = cipher.blockSize; + xorBlock.call(this, words, offset, blockSize); + cipher.encryptBlock(words, offset); + this._prevBlock = words.slice(offset, offset + blockSize); + } + }); + CBC.Decryptor = CBC.extend({ + processBlock: function (words, offset) { + var cipher = this._cipher; + var blockSize = cipher.blockSize; + var thisBlock = words.slice(offset, offset + blockSize); + cipher.decryptBlock(words, offset); + xorBlock.call(this, words, offset, blockSize); + this._prevBlock = thisBlock; + } + }); + + function xorBlock(words, offset, blockSize) { + var iv = this._iv; + if (iv) { + var block = iv; + this._iv = undefined; + } else { + var block = this._prevBlock; + } + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= block[i]; + } + } + return CBC; + }()); + var C_pad = C.pad = {}; + var Pkcs7 = C_pad.Pkcs7 = { + pad: function (data, blockSize) { + var blockSizeBytes = blockSize * 4; + var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; + var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes; + var paddingWords = []; + for (var i = 0; i < nPaddingBytes; i += 4) { + paddingWords.push(paddingWord); + } + var padding = WordArray.create(paddingWords, nPaddingBytes); + data.concat(padding); + }, unpad: function (data) { + var nPaddingBytes = data.words[(data.sigBytes - 1)>>> 2] & 0xff; + data.sigBytes -= nPaddingBytes; + } + }; + var BlockCipher = C_lib.BlockCipher = Cipher.extend({ + cfg: Cipher.cfg.extend({ + mode: CBC, + padding: Pkcs7 + }), + reset: function () { + Cipher.reset.call(this); + var cfg = this.cfg; + var iv = cfg.iv; + var mode = cfg.mode; + if (this._xformMode == this._ENC_XFORM_MODE) { + var modeCreator = mode.createEncryptor; + } else { + var modeCreator = mode.createDecryptor; + this._minBufferSize = 1; + } if (this._mode && this._mode.__creator == modeCreator) { + this._mode.init(this, iv && iv.words); + } else { + this._mode = modeCreator.call(mode, this, iv && iv.words); + this._mode.__creator = modeCreator; + } + }, _doProcessBlock: function (words, offset) { + this._mode.processBlock(words, offset); + }, _doFinalize: function () { + var padding = this.cfg.padding; + if (this._xformMode == this._ENC_XFORM_MODE) { + padding.pad(this._data, this.blockSize); + var finalProcessedBlocks = this._process(!!'flush'); + } else { + var finalProcessedBlocks = this._process(!!'flush'); + padding.unpad(finalProcessedBlocks); + } + return finalProcessedBlocks; + }, blockSize: 128 / 32 + }); + var CipherParams = C_lib.CipherParams = Base.extend({ + init: function (cipherParams) { + this.mixIn(cipherParams); + }, toString: function (formatter) { + return (formatter || this.formatter).stringify(this); + } + }); + var C_format = C.format = {}; + var OpenSSLFormatter = C_format.OpenSSL = { + stringify: function (cipherParams) { + var ciphertext = cipherParams.ciphertext; + var salt = cipherParams.salt; + if (salt) { + var wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext); + } else { + var wordArray = ciphertext; + } + return wordArray.toString(Base64); + }, parse: function (openSSLStr) { + var ciphertext = Base64.parse(openSSLStr); + var ciphertextWords = ciphertext.words; + if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) { + var salt = WordArray.create(ciphertextWords.slice(2, 4)); + ciphertextWords.splice(0, 4); + ciphertext.sigBytes -= 16; + } + return CipherParams.create({ + ciphertext: ciphertext, + salt: salt + }); + } + }; + var SerializableCipher = C_lib.SerializableCipher = Base.extend({ + cfg: Base.extend({ + format: OpenSSLFormatter + }), + encrypt: function (cipher, message, key, cfg) { + cfg = this.cfg.extend(cfg); + var encryptor = cipher.createEncryptor(key, cfg); + var ciphertext = encryptor.finalize(message); + var cipherCfg = encryptor.cfg; + return CipherParams.create({ + ciphertext: ciphertext, + key: key, + iv: cipherCfg.iv, + algorithm: cipher, + mode: cipherCfg.mode, + padding: cipherCfg.padding, + blockSize: cipher.blockSize, + formatter: cfg.format + }); + }, decrypt: function (cipher, ciphertext, key, cfg) { + cfg = this.cfg.extend(cfg); + ciphertext = this._parse(ciphertext, cfg.format); + var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext); + return plaintext; + }, _parse: function (ciphertext, format) { + if (typeof ciphertext == 'string') { + return format.parse(ciphertext, this); + } else { + return ciphertext; + } + } + }); + var C_kdf = C.kdf = {}; + var OpenSSLKdf = C_kdf.OpenSSL = { + execute: function (password, keySize, ivSize, salt) { + if (!salt) { + salt = WordArray.random(64 / 8); + } + var key = EvpKDF.create({ + keySize: keySize + ivSize + }).compute(password, salt); + var iv = WordArray.create(key.words.slice(keySize), ivSize * 4); + key.sigBytes = keySize * 4; + return CipherParams.create({ + key: key, + iv: iv, + salt: salt + }); + } + }; + var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({ + cfg: SerializableCipher.cfg.extend({ + kdf: OpenSSLKdf + }), + encrypt: function (cipher, message, password, cfg) { + cfg = this.cfg.extend(cfg); + var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize); + cfg.iv = derivedParams.iv; + var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg); + ciphertext.mixIn(derivedParams); + return ciphertext; + }, decrypt: function (cipher, ciphertext, password, cfg) { + cfg = this.cfg.extend(cfg); + ciphertext = this._parse(ciphertext, cfg.format); + var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt); + cfg.iv = derivedParams.iv; + var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg); + return plaintext; + } + }); +}()); + +CryptoJS.mode.ECB = (function () { + var ECB = CryptoJS.lib.BlockCipherMode.extend(); + ECB.Encryptor = ECB.extend({ + processBlock: function (words, offset) { + this._cipher.encryptBlock(words, offset); + } + }); + ECB.Decryptor = ECB.extend({ + processBlock: function (words, offset) { + this._cipher.decryptBlock(words, offset); + } + }); + return ECB; +}()); + +(function () { + var C = CryptoJS; + var C_lib = C.lib; + var BlockCipher = C_lib.BlockCipher; + var C_algo = C.algo; + var SBOX = []; + var INV_SBOX = []; + var SUB_MIX_0 = []; + var SUB_MIX_1 = []; + var SUB_MIX_2 = []; + var SUB_MIX_3 = []; + var INV_SUB_MIX_0 = []; + var INV_SUB_MIX_1 = []; + var INV_SUB_MIX_2 = []; + var INV_SUB_MIX_3 = []; + (function () { + var d = []; + for (var i = 0; i < 256; i++) { + if (i < 128) { + d[i] = i << 1; + } else { + d[i] = (i << 1) ^ 0x11b; + } + } + var x = 0; + var xi = 0; + for (var i = 0; i < 256; i++) { + var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4); + sx = (sx>>> 8) ^ (sx & 0xff) ^ 0x63; + SBOX[x] = sx; + INV_SBOX[sx] = x; + var x2 = d[x]; + var x4 = d[x2]; + var x8 = d[x4]; + var t = (d[sx] * 0x101) ^ (sx * 0x1010100); + SUB_MIX_0[x] = (t << 24) | (t>>> 8); + SUB_MIX_1[x] = (t << 16) | (t>>> 16); + SUB_MIX_2[x] = (t << 8) | (t>>> 24); + SUB_MIX_3[x] = t; + var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100); + INV_SUB_MIX_0[sx] = (t << 24) | (t>>> 8); + INV_SUB_MIX_1[sx] = (t << 16) | (t>>> 16); + INV_SUB_MIX_2[sx] = (t << 8) | (t>>> 24); + INV_SUB_MIX_3[sx] = t; + if (!x) { + x = xi = 1; + } else { + x = x2 ^ d[d[d[x8 ^ x2]]]; + xi ^= d[d[xi]]; + } + } + }()); + var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]; + var AES = C_algo.AES = BlockCipher.extend({ + _doReset: function () { + if (this._nRounds && this._keyPriorReset === this._key) { + return; + } + var key = this._keyPriorReset = this._key; + var keyWords = key.words; + var keySize = key.sigBytes / 4; + var nRounds = this._nRounds = keySize + 6; + var ksRows = (nRounds + 1) * 4; + var keySchedule = this._keySchedule = []; + for (var ksRow = 0; ksRow < ksRows; ksRow++) { + if (ksRow < keySize) { + keySchedule[ksRow] = keyWords[ksRow]; + } else { + var t = keySchedule[ksRow - 1]; + if (!(ksRow % keySize)) { + t = (t << 8) | (t>>> 24); + t = (SBOX[t>>> 24] << 24) | (SBOX[(t>>> 16) & 0xff] << 16) | (SBOX[(t>>> 8) & 0xff] << 8) | SBOX[t & 0xff]; + t ^= RCON[(ksRow / keySize) | 0] << 24; + } else if (keySize> 6 && ksRow % keySize == 4) { + t = (SBOX[t>>> 24] << 24) | (SBOX[(t>>> 16) & 0xff] << 16) | (SBOX[(t>>> 8) & 0xff] << 8) | SBOX[t & 0xff]; + } + keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t; + } + } + var invKeySchedule = this._invKeySchedule = []; + for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) { + var ksRow = ksRows - invKsRow; + if (invKsRow % 4) { + var t = keySchedule[ksRow]; + } else { + var t = keySchedule[ksRow - 4]; + } if (invKsRow < 4 || ksRow <= 4) { + invKeySchedule[invKsRow] = t; + } else { + invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t>>> 24]] ^ INV_SUB_MIX_1[SBOX[(t>>> 16) & 0xff]] ^ INV_SUB_MIX_2[SBOX[(t>>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]]; + } + } + }, encryptBlock: function (M, offset) { + this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX); + }, decryptBlock: function (M, offset) { + var t = M[offset + 1]; + M[offset + 1] = M[offset + 3]; + M[offset + 3] = t; + this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX); + var t = M[offset + 1]; + M[offset + 1] = M[offset + 3]; + M[offset + 3] = t; + }, _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) { + var nRounds = this._nRounds; + var s0 = M[offset] ^ keySchedule[0]; + var s1 = M[offset + 1] ^ keySchedule[1]; + var s2 = M[offset + 2] ^ keySchedule[2]; + var s3 = M[offset + 3] ^ keySchedule[3]; + var ksRow = 4; + for (var round = 1; round < nRounds; round++) { + var t0 = SUB_MIX_0[s0>>> 24] ^ SUB_MIX_1[(s1>>> 16) & 0xff] ^ SUB_MIX_2[(s2>>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++]; + var t1 = SUB_MIX_0[s1>>> 24] ^ SUB_MIX_1[(s2>>> 16) & 0xff] ^ SUB_MIX_2[(s3>>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++]; + var t2 = SUB_MIX_0[s2>>> 24] ^ SUB_MIX_1[(s3>>> 16) & 0xff] ^ SUB_MIX_2[(s0>>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++]; + var t3 = SUB_MIX_0[s3>>> 24] ^ SUB_MIX_1[(s0>>> 16) & 0xff] ^ SUB_MIX_2[(s1>>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++]; + s0 = t0; + s1 = t1; + s2 = t2; + s3 = t3; + } + var t0 = ((SBOX[s0>>> 24] << 24) | (SBOX[(s1>>> 16) & 0xff] << 16) | (SBOX[(s2>>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]; + var t1 = ((SBOX[s1>>> 24] << 24) | (SBOX[(s2>>> 16) & 0xff] << 16) | (SBOX[(s3>>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]; + var t2 = ((SBOX[s2>>> 24] << 24) | (SBOX[(s3>>> 16) & 0xff] << 16) | (SBOX[(s0>>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]; + var t3 = ((SBOX[s3>>> 24] << 24) | (SBOX[(s0>>> 16) & 0xff] << 16) | (SBOX[(s1>>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]; + M[offset] = t0; + M[offset + 1] = t1; + M[offset + 2] = t2; + M[offset + 3] = t3; + }, keySize: 256 / 32 + }); + C.AES = BlockCipher._createHelper(AES); +}()); + +var key = CryptoJS.enc.Utf8.parse("103a569fappsapi0"); + +function AES_Encrypt(word) { + var srcs = CryptoJS.enc.Utf8.parse(word); + var encrypted = CryptoJS.AES.encrypt(srcs, key, { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7 + }); + return encrypted.toString(); +} + +function AES_Decrypt(word) { + var srcs = word; + var decrypt = CryptoJS.AES.decrypt(srcs, key, { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7 + }); + return decrypt.toString(CryptoJS.enc.Utf8); +} + + +var word = '{"cl":[{"x":597,"y":386,"t":1572446920298}],"mv":[{"fx":442,"fy":588,"t":1572446919522},{"fx":576,"fy":543,"t":1572446919678},{"fx":614,"fy":478,"t":1572446919830},{"fx":604,"fy":413,"t":1572446919991},{"fx":599,"fy":386,"t":1572446920575},{"fx":611,"fy":386,"t":1572446920734},{"fx":619,"fy":385,"t":1572446920991},{"fx":625,"fy":385,"t":1572446921449},{"fx":607,"fy":444,"t":1572446921605},{"fx":592,"fy":457,"t":1572446922326},{"fx":587,"fy":426,"t":1572446922478},{"fx":587,"fy":398,"t":1572446922639},{"fx":588,"fy":392,"t":1572446923391},{"fx":593,"fy":391,"t":1572446923606},{"fx":612,"fy":391,"t":1572446923758},{"fx":607,"fy":391,"t":1572446923918},{"fx":588,"fy":391,"t":1572446924077},{"fx":583,"fy":391,"t":1572446925207},{"fx":480,"fy":554,"t":1572446925366},{"fx":434,"fy":625,"t":1572446925526}],"sc":[],"kb":[],"cr":{"screenTop":0,"screenLeft":0,"clientclientHeight":635,"screenWidth":1366,"screenHeight":768,"availWidth":1366,"availHeight":738,"outerWidth":1366,"outerHeight":738,"scrollWidth":1366,"scrollHeight":1366},"simu":0,"ac_c":0}' +console.log(AES_Encrypt(word)) \ No newline at end of file diff --git "a/29-344円272円221円347円211円207円346円273円221円345円235円227円351円252円214円350円257円201円347円240円201円JS347円240円264円350円247円243円/yun.js" "b/29-344円272円221円347円211円207円346円273円221円345円235円227円351円252円214円350円257円201円347円240円201円JS347円240円264円350円247円243円/yun.js" new file mode 100644 index 0000000..e31d6ec --- /dev/null +++ "b/29-344円272円221円347円211円207円346円273円221円345円235円227円351円252円214円350円257円201円347円240円201円JS347円240円264円350円247円243円/yun.js" @@ -0,0 +1,1784 @@ +navigator = { + // WT-JS_DEBUG + appCodeName: "Mozilla", + appMinorVersion: "0", + appName: "Netscape", + appVersion: "5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; InfoPath.3; rv:11.0) like Gecko", + browserLanguage: "zh-CN", + cookieEnabled: true, + cpuClass: "x86", + language: "zh-CN", + maxTouchPoints: 0, + msManipulationViewsEnabled: true, + msMaxTouchPoints: 0, + msPointerEnabled: true, + onLine: true, + platform: "Win32", + pointerEnabled: true, + product: "Gecko", + systemLanguage: "zh-CN", + userAgent: "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; InfoPath.3; rv:11.0) like Gecko", + userLanguage: "zh-CN", + vendor: "", + vendorSub: "", + webdriver: false +}, window = this, window.navigator = navigator; + +function getRandomStr(t) { + for (var e = ""; e.length < t;) + e += Math.random().toString(36).substr(2); + return e = e.slice(0, t) +} + +var dbits; +var canary = 0xdeadbeefcafe; +var j_lm = ((canary & 0xffffff) == 0xefcafe); + +function BigInteger(a, b, c) { + if (a != null) if ("number" == typeof a) this.fromNumber(a, b, c); + else if (b == null && "string" != typeof a) this.fromString(a, 256); + else this.fromString(a, b) +} + +function nbi() { + return new BigInteger(null) +} + +function am3(i, x, w, j, c, n) { + var xl = x & 0x3fff, + xh = x>> 14; + while (--n>= 0) { + var l = this[i] & 0x3fff; + var h = this[i++]>> 14; + var m = xh * l + h * xl; + l = xl * l + ((m & 0x3fff) << 14) + w[j] + c; + c = (l>> 28) + (m>> 14) + xh * h; + w[j++] = l & 0xfffffff + } + return c +} + +BigInteger.prototype.am = am3; +dbits = 28; +BigInteger.prototype.DB = dbits; +BigInteger.prototype.DM = ((1 << dbits) - 1); +BigInteger.prototype.DV = (1 << dbits); +var BI_FP = 52; +BigInteger.prototype.FV = Math.pow(2, BI_FP); +BigInteger.prototype.F1 = BI_FP - dbits; +BigInteger.prototype.F2 = 2 * dbits - BI_FP; +var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz"; +var BI_RC = new Array(); +var rr, vv; +rr = "0".charCodeAt(0); +for (vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv; +rr = "a".charCodeAt(0); +for (vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv; +rr = "A".charCodeAt(0); +for (vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv; + +function int2char(n) { + return BI_RM.charAt(n) +} + +function intAt(s, i) { + var c = BI_RC[s.charCodeAt(i)]; + return (c == null) ? -1 : c +} + +function bnpCopyTo(r) { + for (var i = this.t - 1; i>= 0; --i) r[i] = this[i]; + r.t = this.t; + r.s = this.s +} + +function bnpFromInt(x) { + this.t = 1; + this.s = (x < 0) ? -1 : 0; + if (x> 0) this[0] = x; + else if (x < -1) this[0] = x + DV; + else this.t = 0 +} + +function nbv(i) { + var r = nbi(); + r.fromInt(i); + return r +} + +function bnpFromString(s, b) { + var k; + if (b == 16) k = 4; + else if (b == 8) k = 3; + else if (b == 256) k = 8; + else if (b == 2) k = 1; + else if (b == 32) k = 5; + else if (b == 4) k = 2; + else { + this.fromRadix(s, b); + return + } + this.t = 0; + this.s = 0; + var i = s.length, + mi = false, + sh = 0; + while (--i>= 0) { + var x = (k == 8) ? s[i] & 0xff : intAt(s, i); + if (x < 0) { + if (s.charAt(i) == "-") mi = true; + continue + } + mi = false; + if (sh == 0) this[this.t++] = x; + else if (sh + k> this.DB) { + this[this.t - 1] |= (x & ((1 << (this.DB - sh)) - 1)) << sh; + this[this.t++] = (x>> (this.DB - sh)) + } else this[this.t - 1] |= x << sh; + sh += k; + if (sh>= this.DB) sh -= this.DB + } + if (k == 8 && (s[0] & 0x80) != 0) { + this.s = -1; + if (sh> 0) this[this.t - 1] |= ((1 << (this.DB - sh)) - 1) << sh + } + this.clamp(); + if (mi) BigInteger.ZERO.subTo(this, this) +} + +function bnpClamp() { + var c = this.s & this.DM; + while (this.t> 0 && this[this.t - 1] == c) --this.t +} + +function bnToString(b) { + if (this.s < 0) return "-" + this.negate().toString(b); + var k; + if (b == 16) k = 4; + else if (b == 8) k = 3; + else if (b == 2) k = 1; + else if (b == 32) k = 5; + else if (b == 4) k = 2; + else return this.toRadix(b); + var km = (1 << k) - 1, + d, + m = false, + r = "", + i = this.t; + var p = this.DB - (i * this.DB) % k; + if (i--> 0) { + if (p < this.DB && (d = this[i]>> p)> 0) { + m = true; + r = int2char(d) + } + while (i>= 0) { + if (p < k) { + d = (this[i] & ((1 << p) - 1)) << (k - p); + d |= this[--i]>> (p += this.DB - k) + } else { + d = (this[i]>> (p -= k)) & km; + if (p <= 0) { + p += this.DB; + --i + } + } + if (d> 0) m = true; + if (m) r += int2char(d) + } + } + return m ? r : "0" +} + +function bnAbs() { + return (this.s < 0) ? this.negate() : this +} + +function bnCompareTo(a) { + var r = this.s - a.s; + if (r != 0) return r; + var i = this.t; + r = i - a.t; + if (r != 0) return r; + while (--i>= 0) if ((r = this[i] - a[i]) != 0) return r; + return 0 +} + +function nbits(x) { + var r = 1, + t; + if ((t = x>>> 16) != 0) { + x = t; + r += 16 + } + if ((t = x>> 8) != 0) { + x = t; + r += 8 + } + if ((t = x>> 4) != 0) { + x = t; + r += 4 + } + if ((t = x>> 2) != 0) { + x = t; + r += 2 + } + if ((t = x>> 1) != 0) { + x = t; + r += 1 + } + return r +} + +function bnBitLength() { + if (this.t <= 0) return 0; + return this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ (this.s & this.DM)) +} + +function bnpDLShiftTo(n, r) { + var i; + for (i = this.t - 1; i>= 0; --i) r[i + n] = this[i]; + for (i = n - 1; i>= 0; --i) r[i] = 0; + r.t = this.t + n; + r.s = this.s +} + +function bnpDRShiftTo(n, r) { + for (var i = n; i < this.t; ++i) r[i - n] = this[i]; + r.t = Math.max(this.t - n, 0); + r.s = this.s +} + +function bnpLShiftTo(n, r) { + var bs = n % this.DB; + var cbs = this.DB - bs; + var bm = (1 << cbs) - 1; + var ds = Math.floor(n / this.DB), + c = (this.s << bs) & this.DM, + i; + for (i = this.t - 1; i>= 0; --i) { + r[i + ds + 1] = (this[i]>> cbs) | c; + c = (this[i] & bm) << bs + } + for (i = ds - 1; i>= 0; --i) r[i] = 0; + r[ds] = c; + r.t = this.t + ds + 1; + r.s = this.s; + r.clamp() +} + +function bnpRShiftTo(n, r) { + r.s = this.s; + var ds = Math.floor(n / this.DB); + if (ds>= this.t) { + r.t = 0; + return + } + var bs = n % this.DB; + var cbs = this.DB - bs; + var bm = (1 << bs) - 1; + r[0] = this[ds]>> bs; + for (var i = ds + 1; i < this.t; ++i) { + r[i - ds - 1] |= (this[i] & bm) << cbs; + r[i - ds] = this[i]>> bs + } + if (bs> 0) r[this.t - ds - 1] |= (this.s & bm) << cbs; + r.t = this.t - ds; + r.clamp() +} + +function bnpSubTo(a, r) { + var i = 0, + c = 0, + m = Math.min(a.t, this.t); + while (i < m) { + c += this[i] - a[i]; + r[i++] = c & this.DM; + c>>= this.DB + } + if (a.t < this.t) { + c -= a.s; + while (i < this.t) { + c += this[i]; + r[i++] = c & this.DM; + c>>= this.DB + } + c += this.s + } else { + c += this.s; + while (i < a.t) { + c -= a[i]; + r[i++] = c & this.DM; + c>>= this.DB + } + c -= a.s + } + r.s = (c < 0) ? -1 : 0; + if (c < -1) r[i++] = this.DV + c; + else if (c> 0) r[i++] = c; + r.t = i; + r.clamp() +} + +function bnpMultiplyTo(a, r) { + var x = this.abs(), + y = a.abs(); + var i = x.t; + r.t = i + y.t; + while (--i>= 0) r[i] = 0; + for (i = 0; i < y.t; ++i) r[i + x.t] = x.am(0, y[i], r, i, 0, x.t); + r.s = 0; + r.clamp(); + if (this.s != a.s) BigInteger.ZERO.subTo(r, r) +} + +function bnpSquareTo(r) { + var x = this.abs(); + var i = r.t = 2 * x.t; + while (--i>= 0) r[i] = 0; + for (i = 0; i < x.t - 1; ++i) { + var c = x.am(i, x[i], r, 2 * i, 0, 1); + if ((r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1))>= x.DV) { + r[i + x.t] -= x.DV; + r[i + x.t + 1] = 1 + } + } + if (r.t> 0) r[r.t - 1] += x.am(i, x[i], r, 2 * i, 0, 1); + r.s = 0; + r.clamp() +} + +function bnpDivRemTo(m, q, r) { + var pm = m.abs(); + if (pm.t <= 0) return; + var pt = this.abs(); + if (pt.t < pm.t) { + if (q != null) q.fromInt(0); + if (r != null) this.copyTo(r); + return + } + if (r == null) r = nbi(); + var y = nbi(), + ts = this.s, + ms = m.s; + var nsh = this.DB - nbits(pm[pm.t - 1]); + if (nsh> 0) { + pm.lShiftTo(nsh, y); + pt.lShiftTo(nsh, r) + } else { + pm.copyTo(y); + pt.copyTo(r) + } + var ys = y.t; + var y0 = y[ys - 1]; + if (y0 == 0) return; + var yt = y0 * (1 << this.F1) + ((ys> 1) ? y[ys - 2]>> this.F2 : 0); + var d1 = this.FV / yt, + d2 = (1 << this.F1) / yt, + e = 1 << this.F2; + var i = r.t, + j = i - ys, + t = (q == null) ? nbi() : q; + y.dlShiftTo(j, t); + if (r.compareTo(t)>= 0) { + r[r.t++] = 1; + r.subTo(t, r) + } + BigInteger.ONE.dlShiftTo(ys, t); + t.subTo(y, y); + while (y.t < ys) y[y.t++] = 0; + while (--j>= 0) { + var qd = (r[--i] == y0) ? this.DM : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2); + if ((r[i] += y.am(0, qd, r, j, 0, ys)) < qd) { + y.dlShiftTo(j, t); + r.subTo(t, r); + while (r[i] < --qd) r.subTo(t, r) + } + } + if (q != null) { + r.drShiftTo(ys, q); + if (ts != ms) BigInteger.ZERO.subTo(q, q) + } + r.t = ys; + r.clamp(); + if (nsh> 0) r.rShiftTo(nsh, r); + if (ts < 0) BigInteger.ZERO.subTo(r, r) +} + +function bnpInvDigit() { + if (this.t < 1) return 0; + var x = this[0]; + if ((x & 1) == 0) return 0; + var y = x & 3; + y = (y * (2 - (x & 0xf) * y)) & 0xf; + y = (y * (2 - (x & 0xff) * y)) & 0xff; + y = (y * (2 - (((x & 0xffff) * y) & 0xffff))) & 0xffff; + y = (y * (2 - x * y % this.DV)) % this.DV; + return (y> 0) ? this.DV - y : -y +} + +function Montgomery(m) { + this.m = m; + this.mp = m.invDigit(); + this.mpl = this.mp & 0x7fff; + this.mph = this.mp>> 15; + this.um = (1 << (m.DB - 15)) - 1; + this.mt2 = 2 * m.t +} + +function montConvert(x) { + var r = nbi(); + x.abs().dlShiftTo(this.m.t, r); + r.divRemTo(this.m, null, r); + if (x.s < 0 && r.compareTo(BigInteger.ZERO)> 0) this.m.subTo(r, r); + return r +} + +function montRevert(x) { + var r = nbi(); + x.copyTo(r); + this.reduce(r); + return r +} + +function montReduce(x) { + while (x.t <= this.mt2) x[x.t++] = 0; + for (var i = 0; i < this.m.t; ++i) { + var j = x[i] & 0x7fff; + var u0 = (j * this.mpl + (((j * this.mph + (x[i]>> 15) * this.mpl) & this.um) << 15)) & x.DM; + j = i + this.m.t; + x[j] += this.m.am(0, u0, x, i, 0, this.m.t); + while (x[j]>= x.DV) { + x[j] -= x.DV; + x[++j]++ + } + } + x.clamp(); + x.drShiftTo(this.m.t, x); + if (x.compareTo(this.m)>= 0) x.subTo(this.m, x) +} + +function montSqrTo(x, r) { + x.squareTo(r); + this.reduce(r) +} + +function montMulTo(x, y, r) { + x.multiplyTo(y, r); + this.reduce(r) +} + +Montgomery.prototype.convert = montConvert; +Montgomery.prototype.revert = montRevert; +Montgomery.prototype.reduce = montReduce; +Montgomery.prototype.mulTo = montMulTo; +Montgomery.prototype.sqrTo = montSqrTo; + +function bnpIsEven() { + return ((this.t> 0) ? (this[0] & 1) : this.s) == 0 +} + +function bnpExp(e, z) { + if (e> 0xffffffff || e < 1) return BigInteger.ONE; + var r = nbi(), + r2 = nbi(), + g = z.convert(this), + i = nbits(e) - 1; + g.copyTo(r); + while (--i>= 0) { + z.sqrTo(r, r2); + if ((e & (1 << i))> 0) z.mulTo(r2, g, r); + else { + var t = r; + r = r2; + r2 = t + } + } + return z.revert(r) +} + +function bnModPowInt(e, m) { + var z; + if (e < 256 || m.isEven()) z = new Classic(m); + else z = new Montgomery(m); + return this.exp(e, z) +} + +BigInteger.prototype.copyTo = bnpCopyTo; +BigInteger.prototype.fromInt = bnpFromInt; +BigInteger.prototype.fromString = bnpFromString; +BigInteger.prototype.clamp = bnpClamp; +BigInteger.prototype.dlShiftTo = bnpDLShiftTo; +BigInteger.prototype.drShiftTo = bnpDRShiftTo; +BigInteger.prototype.lShiftTo = bnpLShiftTo; +BigInteger.prototype.rShiftTo = bnpRShiftTo; +BigInteger.prototype.subTo = bnpSubTo; +BigInteger.prototype.multiplyTo = bnpMultiplyTo; +BigInteger.prototype.squareTo = bnpSquareTo; +BigInteger.prototype.divRemTo = bnpDivRemTo; +BigInteger.prototype.invDigit = bnpInvDigit; +BigInteger.prototype.isEven = bnpIsEven; +BigInteger.prototype.exp = bnpExp; +BigInteger.prototype.toString = bnToString; +BigInteger.prototype.abs = bnAbs; +BigInteger.prototype.compareTo = bnCompareTo; +BigInteger.prototype.bitLength = bnBitLength; +BigInteger.prototype.modPowInt = bnModPowInt; +BigInteger.ZERO = nbv(0); +BigInteger.ONE = nbv(1); +pidCrypt = {}; + +function parseBigInt(str, r) { + return new BigInteger(str, r) +} + +function pkcs1pad2(s, n) { + if (n < s.length + 11) { + console.log("Message too long for RSA"); + return null + } + var ba = new Array(); + var i = s.length - 1; + while (i>= 0 && n> 0) { + ba[--n] = s.charCodeAt(i--) + } + ; + ba[--n] = 0; + var rng = new SecureRandom(); + var x = new Array(); + while (n> 2) { + x[0] = 0; + while (x[0] == 0) rng.nextBytes(x); + ba[--n] = x[0] + } + ba[--n] = 2; + ba[--n] = 0; + return new BigInteger(ba) +} + +function SecureRandom() { + this.rng_state; + this.rng_pool; + this.rng_pptr; + this.rng_pool = new Array(); + var rng_psize = 256; + this.rng_seed_int = function (x) { + this.rng_pool[this.rng_pptr++] ^= x & 255; + this.rng_pool[this.rng_pptr++] ^= (x>> 8) & 255; + this.rng_pool[this.rng_pptr++] ^= (x>> 16) & 255; + this.rng_pool[this.rng_pptr++] ^= (x>> 24) & 255; + if (this.rng_pptr>= rng_psize) this.rng_pptr -= rng_psize + } + this.rng_seed_time = function () { + this.rng_seed_int(new Date().getTime()) + } + this.rng_get_byte = function () { + if (this.rng_state == null) { + this.rng_seed_time(); + this.rng_state = prng_newstate(); + this.rng_state.init(this.rng_pool); + for (this.rng_pptr = 0; this.rng_pptr < this.rng_pool.length; ++this.rng_pptr) this.rng_pool[this.rng_pptr] = 0; + this.rng_pptr = 0 + } + return this.rng_state.next() + } + this.nextBytes = function (ba) { + var i; + for (i = 0; i < ba.length; ++i) ba[i] = this.rng_get_byte() + } +} + +function prng_newstate() { + return new Arcfour() +} + +function Arcfour() { + this.i = 0; + this.j = 0; + this.S = new Array() +} + +function ARC4init(key) { + var i, j, t; + for (i = 0; i < 256; ++i) this.S[i] = i; + j = 0; + for (i = 0; i < 256; ++i) { + j = (j + this.S[i] + key[i % key.length]) & 255; + t = this.S[i]; + this.S[i] = this.S[j]; + this.S[j] = t + } + this.i = 0; + this.j = 0 +} + +function ARC4next() { + var t; + this.i = (this.i + 1) & 255; + this.j = (this.j + this.S[this.i]) & 255; + t = this.S[this.i]; + this.S[this.i] = this.S[this.j]; + this.S[this.j] = t; + return this.S[(t + this.S[this.i]) & 255] +} + +Arcfour.prototype.init = ARC4init; +Arcfour.prototype.next = ARC4next; +pidCrypt.RSA = function () { + this.n = null; + this.e = 0; + this.d = null; + this.p = null; + this.q = null; + this.dmp1 = null; + this.dmq1 = null; + this.coeff = null +} +pidCrypt.RSA.prototype.setPublic = function (N, E, radix) { + if (typeof (radix) == 'undefined') radix = 16; + if (N != null && E != null && N.length> 0 && E.length> 0) { + this.n = parseBigInt(N, radix); + this.e = parseInt(E, radix) + } else alert("Invalid RSA public key") +} +pidCrypt.RSA.prototype.doPublic = function (x) { + return x.modPowInt(this.e, this.n) +} +pidCrypt.RSA.prototype.encryptRaw = function (text) { + var m = pkcs1pad2(text, (this.n.bitLength() + 7)>> 3); + if (m == null) return null; + var c = this.doPublic(m); + if (c == null) return null; + var h = c.toString(16); + if ((h.length & 1) == 0) return h; + else return "0" + h +} +pidCrypt.RSA.prototype.encrypt = function (text) { + return this.encryptRaw(text) +} +pidCrypt.RSA.prototype.getASNData = function (tree) { + var params = {}; + var data = []; + var p = 0; + if (tree.value && tree.type == 'INTEGER') data[p++] = tree.value; + if (tree.sub) for (var i = 0; i < tree.sub.length; i++) data = data.concat(this.getASNData(tree.sub[i])); + return data +} +pidCrypt.RSA.prototype.setKeyFromASN = function (key, asntree) { + var keys = ['N', 'E', 'D', 'P', 'Q', 'DP', 'DQ', 'C']; + var params = {}; + var asnData = this.getASNData(asntree); + switch (key) { + case 'Public': + case 'public': + for (var i = 0; i < asnData.length; i++) params[keys[i]] = asnData[i].toLowerCase(); + this.setPublic(params.N, params.E, 16); + break + } +} +pidCrypt.RSA.prototype.setPublicKeyFromASN = function (asntree) { + this.setKeyFromASN('public', asntree) +} +pidCryptUtil = {}; +pidCryptUtil.encodeBase64 = function (str, utf8encode) { + if (!str) str = ""; + var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + utf8encode = (typeof utf8encode == 'undefined') ? false : utf8encode; + var o1, o2, o3, bits, h1, h2, h3, h4, e = [], + pad = '', + c, + plain, + coded; + plain = utf8encode ? pidCryptUtil.encodeUTF8(str) : str; + c = plain.length % 3; + if (c> 0) { + while (c++ < 3) { + pad += '='; + plain += '0円' + } + } + for (c = 0; c < plain.length; c += 3) { + o1 = plain.charCodeAt(c); + o2 = plain.charCodeAt(c + 1); + o3 = plain.charCodeAt(c + 2); + bits = o1 << 16 | o2 << 8 | o3; + h1 = bits>> 18 & 0x3f; + h2 = bits>> 12 & 0x3f; + h3 = bits>> 6 & 0x3f; + h4 = bits & 0x3f; + e[c / 3] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4) + } + coded = e.join(''); + coded = coded.slice(0, coded.length - pad.length) + pad; + return coded +} +pidCryptUtil.decodeBase64 = function (str, utf8decode) { + if (!str) str = ""; + var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + utf8decode = (typeof utf8decode == 'undefined') ? false : utf8decode; + var o1, o2, o3, h1, h2, h3, h4, bits, d = [], + plain, + coded; + coded = utf8decode ? pidCryptUtil.decodeUTF8(str) : str; + for (var c = 0; c < coded.length; c += 4) { + h1 = b64.indexOf(coded.charAt(c)); + h2 = b64.indexOf(coded.charAt(c + 1)); + h3 = b64.indexOf(coded.charAt(c + 2)); + h4 = b64.indexOf(coded.charAt(c + 3)); + bits = h1 << 18 | h2 << 12 | h3 << 6 | h4; + o1 = bits>>> 16 & 0xff; + o2 = bits>>> 8 & 0xff; + o3 = bits & 0xff; + d[c / 4] = String.fromCharCode(o1, o2, o3); + if (h4 == 0x40) d[c / 4] = String.fromCharCode(o1, o2); + if (h3 == 0x40) d[c / 4] = String.fromCharCode(o1) + } + plain = d.join(''); + plain = utf8decode ? pidCryptUtil.decodeUTF8(plain) : plain + return plain +} +pidCryptUtil.convertToHex = function (str) { + if (!str) str = ""; + var hs = ''; + var hv = ''; + for (var i = 0; i < str.length; i++) { + hv = str.charCodeAt(i).toString(16); + hs += (hv.length == 1) ? '0' + hv : hv + } + return hs +} +pidCryptUtil.convertFromHex = function (str) { + if (!str) str = ""; + var s = ""; + for (var i = 0; i < str.length; i += 2) { + s += String.fromCharCode(parseInt(str.substring(i, i + 2), 16)) + } + return s +} +pidCryptUtil.stripLineFeeds = function (str) { + if (!str) str = ""; + var s = ''; + s = str.replace(/\n/g, ''); + s = s.replace(/\r/g, ''); + return s +} +pidCryptUtil.toByteArray = function (str) { + if (!str) str = ""; + var ba = []; + for (var i = 0; i < str.length; i++) ba[i] = str.charCodeAt(i); + return ba +} + +function Stream(enc, pos) { + if (enc instanceof Stream) { + this.enc = enc.enc; + this.pos = enc.pos + } else { + this.enc = enc; + this.pos = pos + } +} + +Stream.prototype.parseStringHex = function (start, end) { + if (typeof (end) == 'undefined') end = this.enc.length; + var s = ""; + for (var i = start; i < end; ++i) { + var h = this.get(i); + s += this.hexDigits.charAt(h>> 4) + this.hexDigits.charAt(h & 0xF) + } + return s +} +Stream.prototype.get = function (pos) { + if (pos == undefined) pos = this.pos++; + if (pos>= this.enc.length) throw 'Requesting byte offset ' + pos + ' on a stream of length ' + this.enc.length; + return this.enc[pos] +} +Stream.prototype.hexDigits = "0123456789ABCDEF"; +if (typeof (pidCrypt) != 'undefined') { + pidCrypt.ASN1 = function (stream, header, length, tag, sub) { + this.stream = stream; + this.header = header; + this.length = length; + this.tag = tag; + this.sub = sub + } + pidCrypt.ASN1.prototype.toHexTree = function () { + var node = {}; + node.type = this.typeName(); + if (node.type != 'SEQUENCE') node.value = this.stream.parseStringHex(this.posContent(), this.posEnd()); + if (this.sub != null) { + node.sub = []; + for (var i = 0, + max = this.sub.length; i < max; ++i) node.sub[i] = this.sub[i].toHexTree() + } + return node + } + pidCrypt.ASN1.prototype.typeName = function () { + if (this.tag == undefined) return "unknown"; + var tagClass = this.tag>> 6; + var tagNumber = this.tag & 0x1F; + switch (tagClass) { + case 0: + switch (tagNumber) { + case 0x00: + return "EOC"; + case 0x01: + return "BOOLEAN"; + case 0x02: + return "INTEGER"; + case 0x03: + return "BIT_STRING"; + case 0x04: + return "OCTET_STRING"; + case 0x05: + return "NULL"; + case 0x06: + return "OBJECT_IDENTIFIER"; + case 0x07: + return "ObjectDescriptor"; + case 0x08: + return "EXTERNAL"; + case 0x09: + return "REAL"; + case 0x0A: + return "ENUMERATED"; + case 0x0B: + return "EMBEDDED_PDV"; + case 0x0C: + return "UTF8String"; + case 0x10: + return "SEQUENCE"; + case 0x11: + return "SET"; + case 0x12: + return "NumericString"; + case 0x13: + return "PrintableString"; + case 0x14: + return "TeletexString"; + case 0x15: + return "VideotexString"; + case 0x16: + return "IA5String"; + case 0x17: + return "UTCTime"; + case 0x18: + return "GeneralizedTime"; + case 0x19: + return "GraphicString"; + case 0x1A: + return "VisibleString"; + case 0x1B: + return "GeneralString"; + case 0x1C: + return "UniversalString"; + case 0x1E: + return "BMPString"; + default: + return "Universal_" + tagNumber.toString(16) + } + case 1: + return "Application_" + tagNumber.toString(16); + case 2: + return "[" + tagNumber + "]"; + case 3: + return "Private_" + tagNumber.toString(16) + } + } + pidCrypt.ASN1.prototype.posStart = function () { + return this.stream.pos + } + pidCrypt.ASN1.prototype.posContent = function () { + return this.stream.pos + this.header + } + pidCrypt.ASN1.prototype.posEnd = function () { + return this.stream.pos + this.header + Math.abs(this.length) + } + pidCrypt.ASN1.decodeLength = function (stream) { + var buf = stream.get(); + var len = buf & 0x7F; + if (len == buf) return len; + if (len> 3) throw "Length over 24 bits not supported at position " + (stream.pos - 1); + if (len == 0) return -1; + buf = 0; + for (var i = 0; i < len; ++i) buf = (buf << 8) | stream.get(); + return buf + } + pidCrypt.ASN1.hasContent = function (tag, len, stream) { + if (tag & 0x20) return true; + if ((tag < 0x03) || (tag> 0x04)) return false; + var p = new Stream(stream); + if (tag == 0x03) p.get(); + var subTag = p.get(); + if ((subTag>> 6) & 0x01) return false; + try { + var subLength = pidCrypt.ASN1.decodeLength(p); + return ((p.pos - stream.pos) + subLength == len) + } catch (exception) { + return false + } + } + pidCrypt.ASN1.decode = function (stream) { + if (!(stream instanceof Stream)) stream = new Stream(stream, 0); + var streamStart = new Stream(stream); + var tag = stream.get(); + var len = pidCrypt.ASN1.decodeLength(stream); + var header = stream.pos - streamStart.pos; + var sub = null; + if (pidCrypt.ASN1.hasContent(tag, len, stream)) { + var start = stream.pos; + if (tag == 0x03) stream.get(); + sub = []; + if (len>= 0) { + var end = start + len; + while (stream.pos < end) sub[sub.length] = pidCrypt.ASN1.decode(stream); + if (stream.pos != end) throw "Content size is not correct for container starting at offset " + start; + } else { + try { + for (; ;) { + var s = pidCrypt.ASN1.decode(stream); + if (s.tag == 0) break; + sub[sub.length] = s + } + len = start - stream.pos + } catch (e) { + throw "Exception while decoding undefined length content: " + e; + } + } + } else stream.pos += len; + return new pidCrypt.ASN1(streamStart, header, len, tag, sub) + } +} + +function certParser(cert) { + var retObj = {}; + retObj.info = ''; + retObj.salt = ''; + retObj.iv; + retObj.b64 = cert; + retObj.aes = false; + retObj.mode = ''; + retObj.bits = 0; + return retObj +} + +function rsaEncrypt(data) { + var public_key = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDnOWe/gs033L/2/xR3oi6SLAMPBY5VledUqqH6dbCNOdrGX4xW+1x6NUfvmwpHRBA2C7xWDDvOIldTl0rMtERTDy9homrVqEcW6/TY+dSVFL3e2Yg2sVaehHv7FhmATkgfC2FcXt8Wvm99QpKRSrGKpcFYJwOj2F8hJh+rTG0IPQIDAQAB'; + var params = certParser(public_key); + var key = pidCryptUtil.decodeBase64(params.b64); + var rsa = new pidCrypt.RSA(); + var asn = pidCrypt.ASN1.decode(pidCryptUtil.toByteArray(key)); + var tree = asn.toHexTree(); + rsa.setPublicKeyFromASN(tree); + var crypted = rsa.encrypt(data); + var b64encrypted = pidCryptUtil.encodeBase64(pidCryptUtil.convertFromHex(crypted)); + return (b64encrypted) +} + +var CryptoJS = CryptoJS || (function (Math, undefined) { + var C = {}; + var C_lib = C.lib = {}; + var Base = C_lib.Base = (function () { + function F() { + }; + return { + extend: function (overrides) { + F.prototype = this; + var subtype = new F(); + if (overrides) { + subtype.mixIn(overrides); + } + if (!subtype.hasOwnProperty('init') || this.init === subtype.init) { + subtype.init = function () { + subtype.$super.init.apply(this, arguments); + }; + } + subtype.init.prototype = subtype; + subtype.$super = this; + return subtype; + }, create: function () { + var instance = this.extend(); + instance.init.apply(instance, arguments); + return instance; + }, init: function () { + }, mixIn: function (properties) { + for (var propertyName in properties) { + if (properties.hasOwnProperty(propertyName)) { + this[propertyName] = properties[propertyName]; + } + } + if (properties.hasOwnProperty('toString')) { + this.toString = properties.toString; + } + }, clone: function () { + return this.init.prototype.extend(this); + } + }; + }()); + var WordArray = C_lib.WordArray = Base.extend({ + init: function (words, sigBytes) { + words = this.words = words || []; + if (sigBytes != undefined) { + this.sigBytes = sigBytes; + } else { + this.sigBytes = words.length * 4; + } + }, toString: function (encoder) { + return (encoder || Hex).stringify(this); + }, concat: function (wordArray) { + var thisWords = this.words; + var thatWords = wordArray.words; + var thisSigBytes = this.sigBytes; + var thatSigBytes = wordArray.sigBytes; + this.clamp(); + if (thisSigBytes % 4) { + for (var i = 0; i < thatSigBytes; i++) { + var thatByte = (thatWords[i>>> 2]>>> (24 - (i % 4) * 8)) & 0xff; + thisWords[(thisSigBytes + i)>>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8); + } + } else if (thatWords.length> 0xffff) { + for (var i = 0; i < thatSigBytes; i += 4) { + thisWords[(thisSigBytes + i)>>> 2] = thatWords[i>>> 2]; + } + } else { + thisWords.push.apply(thisWords, thatWords); + } + this.sigBytes += thatSigBytes; + return this; + }, clamp: function () { + var words = this.words; + var sigBytes = this.sigBytes; + words[sigBytes>>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8); + words.length = Math.ceil(sigBytes / 4); + }, clone: function () { + var clone = Base.clone.call(this); + clone.words = this.words.slice(0); + return clone; + }, random: function (nBytes) { + var words = []; + var r = (function (m_w) { + var m_w = m_w; + var m_z = 0x3ade68b1; + var mask = 0xffffffff; + return function () { + m_z = (0x9069 * (m_z & 0xFFFF) + (m_z>> 0x10)) & mask; + m_w = (0x4650 * (m_w & 0xFFFF) + (m_w>> 0x10)) & mask; + var result = ((m_z << 0x10) + m_w) & mask; + result /= 0x100000000; + result += 0.5; + return result * (Math.random()> .5 ? 1 : -1); + } + }); + for (var i = 0, rcache; i < nBytes; i += 4) { + var _r = r((rcache || Math.random()) * 0x100000000); + rcache = _r() * 0x3ade67b7; + words.push((_r() * 0x100000000) | 0); + } + return new WordArray.init(words, nBytes); + } + }); + var C_enc = C.enc = {}; + var Hex = C_enc.Hex = { + stringify: function (wordArray) { + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + var hexChars = []; + for (var i = 0; i < sigBytes; i++) { + var bite = (words[i>>> 2]>>> (24 - (i % 4) * 8)) & 0xff; + hexChars.push((bite>>> 4).toString(16)); + hexChars.push((bite & 0x0f).toString(16)); + } + return hexChars.join(''); + }, parse: function (hexStr) { + var hexStrLength = hexStr.length; + var words = []; + for (var i = 0; i < hexStrLength; i += 2) { + words[i>>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4); + } + return new WordArray.init(words, hexStrLength / 2); + } + }; + var Latin1 = C_enc.Latin1 = { + stringify: function (wordArray) { + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + var latin1Chars = []; + for (var i = 0; i < sigBytes; i++) { + var bite = (words[i>>> 2]>>> (24 - (i % 4) * 8)) & 0xff; + latin1Chars.push(String.fromCharCode(bite)); + } + return latin1Chars.join(''); + }, parse: function (latin1Str) { + var latin1StrLength = latin1Str.length; + var words = []; + for (var i = 0; i < latin1StrLength; i++) { + words[i>>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8); + } + return new WordArray.init(words, latin1StrLength); + } + }; + var Utf8 = C_enc.Utf8 = { + stringify: function (wordArray) { + try { + return decodeURIComponent(escape(Latin1.stringify(wordArray))); + } catch (e) { + throw new Error('Malformed UTF-8 data'); + } + }, parse: function (utf8Str) { + return Latin1.parse(unescape(encodeURIComponent(utf8Str))); + } + }; + var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({ + reset: function () { + this._data = new WordArray.init(); + this._nDataBytes = 0; + }, _append: function (data) { + if (typeof data == 'string') { + data = Utf8.parse(data); + } + this._data.concat(data); + this._nDataBytes += data.sigBytes; + }, _process: function (doFlush) { + var data = this._data; + var dataWords = data.words; + var dataSigBytes = data.sigBytes; + var blockSize = this.blockSize; + var blockSizeBytes = blockSize * 4; + var nBlocksReady = dataSigBytes / blockSizeBytes; + if (doFlush) { + nBlocksReady = Math.ceil(nBlocksReady); + } else { + nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0); + } + var nWordsReady = nBlocksReady * blockSize; + var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes); + if (nWordsReady) { + for (var offset = 0; offset < nWordsReady; offset += blockSize) { + this._doProcessBlock(dataWords, offset); + } + var processedWords = dataWords.splice(0, nWordsReady); + data.sigBytes -= nBytesReady; + } + return new WordArray.init(processedWords, nBytesReady); + }, clone: function () { + var clone = Base.clone.call(this); + clone._data = this._data.clone(); + return clone; + }, _minBufferSize: 0 + }); + var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({ + cfg: Base.extend(), + init: function (cfg) { + this.cfg = this.cfg.extend(cfg); + this.reset(); + }, reset: function () { + BufferedBlockAlgorithm.reset.call(this); + this._doReset(); + }, update: function (messageUpdate) { + this._append(messageUpdate); + this._process(); + return this; + }, finalize: function (messageUpdate) { + if (messageUpdate) { + this._append(messageUpdate); + } + var hash = this._doFinalize(); + return hash; + }, blockSize: 512 / 32, + _createHelper: function (hasher) { + return function (message, cfg) { + return new hasher.init(cfg).finalize(message); + }; + }, _createHmacHelper: function (hasher) { + return function (message, key) { + return new C_algo.HMAC.init(hasher, key).finalize(message); + }; + } + }); + var C_algo = C.algo = {}; + return C; +}(Math)); + +(function () { + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var C_enc = C.enc; + var Base64 = C_enc.Base64 = { + stringify: function (wordArray) { + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + var map = this._map; + wordArray.clamp(); + var base64Chars = []; + for (var i = 0; i < sigBytes; i += 3) { + var byte1 = (words[i>>> 2]>>> (24 - (i % 4) * 8)) & 0xff; + var byte2 = (words[(i + 1)>>> 2]>>> (24 - ((i + 1) % 4) * 8)) & 0xff; + var byte3 = (words[(i + 2)>>> 2]>>> (24 - ((i + 2) % 4) * 8)) & 0xff; + var triplet = (byte1 << 16) | (byte2 << 8) | byte3; + for (var j = 0; + (j < 4) && (i + j * 0.75 < sigBytes); j++) { + base64Chars.push(map.charAt((triplet>>> (6 * (3 - j))) & 0x3f)); + } + } + var paddingChar = map.charAt(64); + if (paddingChar) { + while (base64Chars.length % 4) { + base64Chars.push(paddingChar); + } + } + return base64Chars.join(''); + }, parse: function (base64Str) { + var base64StrLength = base64Str.length; + var map = this._map; + var reverseMap = this._reverseMap; + if (!reverseMap) { + reverseMap = this._reverseMap = []; + for (var j = 0; j < map.length; j++) { + reverseMap[map.charCodeAt(j)] = j; + } + } + var paddingChar = map.charAt(64); + if (paddingChar) { + var paddingIndex = base64Str.indexOf(paddingChar); + if (paddingIndex !== -1) { + base64StrLength = paddingIndex; + } + } + return parseLoop(base64Str, base64StrLength, reverseMap); + }, _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' + }; + + function parseLoop(base64Str, base64StrLength, reverseMap) { + var words = []; + var nBytes = 0; + for (var i = 0; i < base64StrLength; i++) { + if (i % 4) { + var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2); + var bits2 = reverseMap[base64Str.charCodeAt(i)]>>> (6 - (i % 4) * 2); + words[nBytes>>> 2] |= (bits1 | bits2) << (24 - (nBytes % 4) * 8); + nBytes++; + } + } + return WordArray.create(words, nBytes); + } +}()); + +CryptoJS.lib.Cipher || (function (undefined) { + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var WordArray = C_lib.WordArray; + var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm; + var C_enc = C.enc; + var Utf8 = C_enc.Utf8; + var Base64 = C_enc.Base64; + var C_algo = C.algo; + var EvpKDF = C_algo.EvpKDF; + var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({ + cfg: Base.extend(), + createEncryptor: function (key, cfg) { + return this.create(this._ENC_XFORM_MODE, key, cfg); + }, createDecryptor: function (key, cfg) { + return this.create(this._DEC_XFORM_MODE, key, cfg); + }, init: function (xformMode, key, cfg) { + this.cfg = this.cfg.extend(cfg); + this._xformMode = xformMode; + this._key = key; + this.reset(); + }, reset: function () { + BufferedBlockAlgorithm.reset.call(this); + this._doReset(); + }, process: function (dataUpdate) { + this._append(dataUpdate); + return this._process(); + }, finalize: function (dataUpdate) { + if (dataUpdate) { + this._append(dataUpdate); + } + var finalProcessedData = this._doFinalize(); + return finalProcessedData; + }, keySize: 128 / 32, + ivSize: 128 / 32, + _ENC_XFORM_MODE: 1, + _DEC_XFORM_MODE: 2, + _createHelper: (function () { + function selectCipherStrategy(key) { + if (typeof key == 'string') { + return PasswordBasedCipher; + } else { + return SerializableCipher; + } + } + + return function (cipher) { + return { + encrypt: function (message, key, cfg) { + return selectCipherStrategy(key).encrypt(cipher, message, key, cfg); + }, decrypt: function (ciphertext, key, cfg) { + return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg); + } + }; + }; + }()) + }); + var StreamCipher = C_lib.StreamCipher = Cipher.extend({ + _doFinalize: function () { + var finalProcessedBlocks = this._process(!!'flush'); + return finalProcessedBlocks; + }, blockSize: 1 + }); + var C_mode = C.mode = {}; + var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({ + createEncryptor: function (cipher, iv) { + return this.Encryptor.create(cipher, iv); + }, createDecryptor: function (cipher, iv) { + return this.Decryptor.create(cipher, iv); + }, init: function (cipher, iv) { + this._cipher = cipher; + this._iv = iv; + } + }); + var CBC = C_mode.CBC = (function () { + var CBC = BlockCipherMode.extend(); + CBC.Encryptor = CBC.extend({ + processBlock: function (words, offset) { + var cipher = this._cipher; + var blockSize = cipher.blockSize; + xorBlock.call(this, words, offset, blockSize); + cipher.encryptBlock(words, offset); + this._prevBlock = words.slice(offset, offset + blockSize); + } + }); + CBC.Decryptor = CBC.extend({ + processBlock: function (words, offset) { + var cipher = this._cipher; + var blockSize = cipher.blockSize; + var thisBlock = words.slice(offset, offset + blockSize); + cipher.decryptBlock(words, offset); + xorBlock.call(this, words, offset, blockSize); + this._prevBlock = thisBlock; + } + }); + + function xorBlock(words, offset, blockSize) { + var iv = this._iv; + if (iv) { + var block = iv; + this._iv = undefined; + } else { + var block = this._prevBlock; + } + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= block[i]; + } + } + + return CBC; + }()); + var C_pad = C.pad = {}; + var Pkcs7 = C_pad.Pkcs7 = { + pad: function (data, blockSize) { + var blockSizeBytes = blockSize * 4; + var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; + var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes; + var paddingWords = []; + for (var i = 0; i < nPaddingBytes; i += 4) { + paddingWords.push(paddingWord); + } + var padding = WordArray.create(paddingWords, nPaddingBytes); + data.concat(padding); + }, unpad: function (data) { + var nPaddingBytes = data.words[(data.sigBytes - 1)>>> 2] & 0xff; + data.sigBytes -= nPaddingBytes; + } + }; + var BlockCipher = C_lib.BlockCipher = Cipher.extend({ + cfg: Cipher.cfg.extend({ + mode: CBC, + padding: Pkcs7 + }), + reset: function () { + Cipher.reset.call(this); + var cfg = this.cfg; + var iv = cfg.iv; + var mode = cfg.mode; + if (this._xformMode == this._ENC_XFORM_MODE) { + var modeCreator = mode.createEncryptor; + } else { + var modeCreator = mode.createDecryptor; + this._minBufferSize = 1; + } + if (this._mode && this._mode.__creator == modeCreator) { + this._mode.init(this, iv && iv.words); + } else { + this._mode = modeCreator.call(mode, this, iv && iv.words); + this._mode.__creator = modeCreator; + } + }, _doProcessBlock: function (words, offset) { + this._mode.processBlock(words, offset); + }, _doFinalize: function () { + var padding = this.cfg.padding; + if (this._xformMode == this._ENC_XFORM_MODE) { + padding.pad(this._data, this.blockSize); + var finalProcessedBlocks = this._process(!!'flush'); + } else { + var finalProcessedBlocks = this._process(!!'flush'); + padding.unpad(finalProcessedBlocks); + } + return finalProcessedBlocks; + }, blockSize: 128 / 32 + }); + var CipherParams = C_lib.CipherParams = Base.extend({ + init: function (cipherParams) { + this.mixIn(cipherParams); + }, toString: function (formatter) { + return (formatter || this.formatter).stringify(this); + } + }); + var C_format = C.format = {}; + var OpenSSLFormatter = C_format.OpenSSL = { + stringify: function (cipherParams) { + var ciphertext = cipherParams.ciphertext; + var salt = cipherParams.salt; + if (salt) { + var wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext); + } else { + var wordArray = ciphertext; + } + return wordArray.toString(Base64); + }, parse: function (openSSLStr) { + var ciphertext = Base64.parse(openSSLStr); + var ciphertextWords = ciphertext.words; + if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) { + var salt = WordArray.create(ciphertextWords.slice(2, 4)); + ciphertextWords.splice(0, 4); + ciphertext.sigBytes -= 16; + } + return CipherParams.create({ + ciphertext: ciphertext, + salt: salt + }); + } + }; + var SerializableCipher = C_lib.SerializableCipher = Base.extend({ + cfg: Base.extend({ + format: OpenSSLFormatter + }), + encrypt: function (cipher, message, key, cfg) { + cfg = this.cfg.extend(cfg); + var encryptor = cipher.createEncryptor(key, cfg); + var ciphertext = encryptor.finalize(message); + var cipherCfg = encryptor.cfg; + return CipherParams.create({ + ciphertext: ciphertext, + key: key, + iv: cipherCfg.iv, + algorithm: cipher, + mode: cipherCfg.mode, + padding: cipherCfg.padding, + blockSize: cipher.blockSize, + formatter: cfg.format + }); + }, decrypt: function (cipher, ciphertext, key, cfg) { + cfg = this.cfg.extend(cfg); + ciphertext = this._parse(ciphertext, cfg.format); + var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext); + return plaintext; + }, _parse: function (ciphertext, format) { + if (typeof ciphertext == 'string') { + return format.parse(ciphertext, this); + } else { + return ciphertext; + } + } + }); + var C_kdf = C.kdf = {}; + var OpenSSLKdf = C_kdf.OpenSSL = { + execute: function (password, keySize, ivSize, salt) { + if (!salt) { + salt = WordArray.random(64 / 8); + } + var key = EvpKDF.create({ + keySize: keySize + ivSize + }).compute(password, salt); + var iv = WordArray.create(key.words.slice(keySize), ivSize * 4); + key.sigBytes = keySize * 4; + return CipherParams.create({ + key: key, + iv: iv, + salt: salt + }); + } + }; + var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({ + cfg: SerializableCipher.cfg.extend({ + kdf: OpenSSLKdf + }), + encrypt: function (cipher, message, password, cfg) { + cfg = this.cfg.extend(cfg); + var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize); + cfg.iv = derivedParams.iv; + var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg); + ciphertext.mixIn(derivedParams); + return ciphertext; + }, decrypt: function (cipher, ciphertext, password, cfg) { + cfg = this.cfg.extend(cfg); + ciphertext = this._parse(ciphertext, cfg.format); + var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt); + cfg.iv = derivedParams.iv; + var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg); + return plaintext; + } + }); +}()); + +(function () { + var C = CryptoJS; + var C_lib = C.lib; + var BlockCipher = C_lib.BlockCipher; + var C_algo = C.algo; + var SBOX = []; + var INV_SBOX = []; + var SUB_MIX_0 = []; + var SUB_MIX_1 = []; + var SUB_MIX_2 = []; + var SUB_MIX_3 = []; + var INV_SUB_MIX_0 = []; + var INV_SUB_MIX_1 = []; + var INV_SUB_MIX_2 = []; + var INV_SUB_MIX_3 = []; + (function () { + var d = []; + for (var i = 0; i < 256; i++) { + if (i < 128) { + d[i] = i << 1; + } else { + d[i] = (i << 1) ^ 0x11b; + } + } + var x = 0; + var xi = 0; + for (var i = 0; i < 256; i++) { + var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4); + sx = (sx>>> 8) ^ (sx & 0xff) ^ 0x63; + SBOX[x] = sx; + INV_SBOX[sx] = x; + var x2 = d[x]; + var x4 = d[x2]; + var x8 = d[x4]; + var t = (d[sx] * 0x101) ^ (sx * 0x1010100); + SUB_MIX_0[x] = (t << 24) | (t>>> 8); + SUB_MIX_1[x] = (t << 16) | (t>>> 16); + SUB_MIX_2[x] = (t << 8) | (t>>> 24); + SUB_MIX_3[x] = t; + var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100); + INV_SUB_MIX_0[sx] = (t << 24) | (t>>> 8); + INV_SUB_MIX_1[sx] = (t << 16) | (t>>> 16); + INV_SUB_MIX_2[sx] = (t << 8) | (t>>> 24); + INV_SUB_MIX_3[sx] = t; + if (!x) { + x = xi = 1; + } else { + x = x2 ^ d[d[d[x8 ^ x2]]]; + xi ^= d[d[xi]]; + } + } + }()); + var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]; + var AES = C_algo.AES = BlockCipher.extend({ + _doReset: function () { + if (this._nRounds && this._keyPriorReset === this._key) { + return; + } + var key = this._keyPriorReset = this._key; + var keyWords = key.words; + var keySize = key.sigBytes / 4; + var nRounds = this._nRounds = keySize + 6; + var ksRows = (nRounds + 1) * 4; + var keySchedule = this._keySchedule = []; + for (var ksRow = 0; ksRow < ksRows; ksRow++) { + if (ksRow < keySize) { + keySchedule[ksRow] = keyWords[ksRow]; + } else { + var t = keySchedule[ksRow - 1]; + if (!(ksRow % keySize)) { + t = (t << 8) | (t>>> 24); + t = (SBOX[t>>> 24] << 24) | (SBOX[(t>>> 16) & 0xff] << 16) | (SBOX[(t>>> 8) & 0xff] << 8) | SBOX[t & 0xff]; + t ^= RCON[(ksRow / keySize) | 0] << 24; + } else if (keySize> 6 && ksRow % keySize == 4) { + t = (SBOX[t>>> 24] << 24) | (SBOX[(t>>> 16) & 0xff] << 16) | (SBOX[(t>>> 8) & 0xff] << 8) | SBOX[t & 0xff]; + } + keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t; + } + } + var invKeySchedule = this._invKeySchedule = []; + for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) { + var ksRow = ksRows - invKsRow; + if (invKsRow % 4) { + var t = keySchedule[ksRow]; + } else { + var t = keySchedule[ksRow - 4]; + } + if (invKsRow < 4 || ksRow <= 4) { + invKeySchedule[invKsRow] = t; + } else { + invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t>>> 24]] ^ INV_SUB_MIX_1[SBOX[(t>>> 16) & 0xff]] ^ INV_SUB_MIX_2[SBOX[(t>>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]]; + } + } + }, encryptBlock: function (M, offset) { + this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX); + }, decryptBlock: function (M, offset) { + var t = M[offset + 1]; + M[offset + 1] = M[offset + 3]; + M[offset + 3] = t; + this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX); + var t = M[offset + 1]; + M[offset + 1] = M[offset + 3]; + M[offset + 3] = t; + }, _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) { + var nRounds = this._nRounds; + var s0 = M[offset] ^ keySchedule[0]; + var s1 = M[offset + 1] ^ keySchedule[1]; + var s2 = M[offset + 2] ^ keySchedule[2]; + var s3 = M[offset + 3] ^ keySchedule[3]; + var ksRow = 4; + for (var round = 1; round < nRounds; round++) { + var t0 = SUB_MIX_0[s0>>> 24] ^ SUB_MIX_1[(s1>>> 16) & 0xff] ^ SUB_MIX_2[(s2>>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++]; + var t1 = SUB_MIX_0[s1>>> 24] ^ SUB_MIX_1[(s2>>> 16) & 0xff] ^ SUB_MIX_2[(s3>>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++]; + var t2 = SUB_MIX_0[s2>>> 24] ^ SUB_MIX_1[(s3>>> 16) & 0xff] ^ SUB_MIX_2[(s0>>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++]; + var t3 = SUB_MIX_0[s3>>> 24] ^ SUB_MIX_1[(s0>>> 16) & 0xff] ^ SUB_MIX_2[(s1>>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++]; + s0 = t0; + s1 = t1; + s2 = t2; + s3 = t3; + } + var t0 = ((SBOX[s0>>> 24] << 24) | (SBOX[(s1>>> 16) & 0xff] << 16) | (SBOX[(s2>>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]; + var t1 = ((SBOX[s1>>> 24] << 24) | (SBOX[(s2>>> 16) & 0xff] << 16) | (SBOX[(s3>>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]; + var t2 = ((SBOX[s2>>> 24] << 24) | (SBOX[(s3>>> 16) & 0xff] << 16) | (SBOX[(s0>>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]; + var t3 = ((SBOX[s3>>> 24] << 24) | (SBOX[(s0>>> 16) & 0xff] << 16) | (SBOX[(s1>>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]; + M[offset] = t0; + M[offset + 1] = t1; + M[offset + 2] = t2; + M[offset + 3] = t3; + }, keySize: 256 / 32 + }); + C.AES = BlockCipher._createHelper(AES); +}()); + + +function encrypt(data) { + // var data = { + // points: track, + // distanceX: distance / 310, + // fp: fingerprint, + // address: "https://www.yunpian.com", + // yp_riddler_id: yp_riddler_id + // }, + t = JSON.stringify(data); + var e = getRandomStr(16) + , n = getRandomStr(16); + console.log(e,n) + return { + i: CryptoJS.AES.encrypt(t, CryptoJS.enc.Latin1.parse(e), { + iv: CryptoJS.enc.Latin1.parse(n), + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.Pkcs7 + }).toString(), + k: rsaEncrypt(e + n) + } +} + +console.log(encrypt('{"browserInfo":[{"key":"userAgent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36"},{"key":"language","value":"zh-CN"},{"key":"hardware_concurrency","value":4},{"key":"resolution","value":[1366,768]},{"key":"navigator_platform","value":"Win32"}],"mobile":"","nativeInfo":{},"options":{"sdk":"https://www.yunpian.com/static/official/js/libs/riddler-sdk-0.2.2.js?version=d64b4905b3d97729a01f89b39459c6ae"},"fp":"87a6ecfe812d030a3c2885223270da33","address":"https://www.yunpian.com","yp_riddler_id":"0dd345b7-b3b5-4c48-8b33-93dd4970e11f"}')); + + +function get_cb() { + var pool = {}; + for (var t; (t = Math.random().toString(32).replace("0.", "")) in pool;) + ; + return pool[t] = { + ts: 1 / 0 + }, + t +} + +console.log(get_cb()); + + +function RandomNum(min, max) { + return Math.floor(Math.random()*(max-min)) + min + 1 +} + +function RandomChoice(arr) { + return arr[Math.floor(Math.random()*arr.length)] +} + +function get_trace(distance){ + distance = Math.floor(distance); + var trace = []; + var sy = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0]; + var st = [15, 16, 17, 18, 15, 16, 17, 18, 15, 16, 17, 18, 15, 16, 17, 18, 15, 16, 17, 18, 15, 16, 17, 18, 15, 16, 17, + 18, 15, 16, 17, 18, 15, 16, 17, 18, 15, 16, 17, 18, 14, 16, 17, 18, 16, 17, 18, 19, 20, 17]; + //items[Math.floor(Math.random()*items.length)] + + if (distance < 95) { + var sx = [1, 2, 1, 2, 1, 2, 1, 1, 2, 1]; + }else{ + var sx = [1, 2, 1, 2, 1, 2, 2, 2, 3, 4]; + } + // zt是第三个参数 + var zt = RandomNum(20, 200); + // baseX X轴的位置 产生随机数字 也就是初始位置 + var baseX = RandomNum(810, 860), + baseY = RandomNum(1190, 1220), + zx = 0, // 后面需要移动的X位置 + zy = 0; // 后面需要移动的Y位置 + var random_x = RandomNum(9, 14); + // 第一个点的位置 也就是初始化的位置 后续的位置都是基于此位置 + trace.push(["" + baseX, "" + baseY, zt]); + var n = 0, x = 0, y = 0, t = 0; + while (true){ + n += 1; // 循环次数 + if (n < 5){ + x = 1; + }else{ + x = RandomChoice(sx) + } + if (distance> 125 && random_x === n){ + x = RandomNum(14, 18) + } + y = RandomChoice(sy); + t = RandomChoice(st); + zx += x; + zy += y; + zt += t; + trace.push(["" + (zx + baseX), "" + (zy + baseY), zt]); + if (distance - zx < 6){ + break; + } + } + var value = distance - zx; + for (var i = 0; i < value; i++){ + t = RandomChoice(st); + + if (value === i + 1){ + t = RandomNum(42, 56) + } + if (value === i + 2){ + t = RandomNum(32, 38) + } + if (value === i + 3){ + t = RandomNum(30, 36) + } + x = 1; + zx += x; + zt += t; + trace.push([""+(zx + baseX), ""+ (zy + baseY), zt]); + } + t = RandomNum(100, 200); + zt += t; + trace.push([""+(zx + baseX), ""+ (zy + baseY), zt]); + return trace; +} + +console.log(get_trace(100)); diff --git "a/30-346円267円230円344円270円200円345円205円224円346円225円260円346円215円256円346円237円245円350円257円242円JS347円240円264円350円247円243円/taoyizhu.js" "b/30-346円267円230円344円270円200円345円205円224円346円225円260円346円215円256円346円237円245円350円257円242円JS347円240円264円350円247円243円/taoyizhu.js" new file mode 100644 index 0000000..79e1239 --- /dev/null +++ "b/30-346円267円230円344円270円200円345円205円224円346円225円260円346円215円256円346円237円245円350円257円242円JS347円240円264円350円247円243円/taoyizhu.js" @@ -0,0 +1,295 @@ +/* + @破解目标: http://www.taoyizhu.com + @破解时间: 2019年8月17日16:03:29 + @破解参数: 搜索用户的时候 POST表单中的tokens 其他参数在前面的请求中获取 +*/ + +function roolNumberFn(num) { + var u = 42; + var result = num; + var num_arr = (result + '').split(''); + $(".num").each(function (index) { + var _num = $(this); + var _actionNum = (u * 60) - (u * num_arr[index]); + setTimeout(function () { + _num.animate({ + backgroundPositionY: (u * 60) - (u * num_arr[index]) + }, { + duration: 1000, + easing: "easeInOutCirc", + complete: function () {} + }) + }, index * 200) + }) +} + +/*function AddCount(type) { + var CounNum = 0; + $.ajax({ + type: "GET", + url: "/dataresult/getcount?type=" + type, + cache: false, + success: function (data) { + $("#search_count").html(data) + } + }) +}*/ + +function ChangeDateFormat(cellval) { + try { + var date = new Date(parseInt(cellval.replace("/Date(", "").replace(")/", ""), 10)); + var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1; + var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate(); + var hour = date.getHours(); + var seconds = date.getSeconds(); + var minutes = date.getMinutes(); + var timeStr = hour> 0 ? +seconds + "时" + seconds + "分" + minutes + "秒" : ""; + return date.getFullYear() + "年" + month + "月" + currentDate + "日 " + timeStr + } catch (e) { + return "" + } +} + +function SetCookieByKey(name, value) { + var Days = 60; + var exp = new Date(); + exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000); + document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString() + ";path=/" +} +var chars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']; + +function generateMixed(n) { + var res = ""; + for (var i = 0; i < n; i++) { + var id = Math.ceil(Math.random() * 35); + res += chars[id] + } + return res +} +var TimeoutAlert = "查询失败,请使用Ctrl+F5多刷新页面几次或是换一个浏览器重新查询!原因是:浏览器缓存了过期的内容导致,多刷新或是换浏览器即可!"; + +function des(key, message, encrypt, mode, iv) { + var spfunction1 = new Array(0x1010400, 0, 0x10000, 0x1010404, 0x1010004, 0x10404, 0x4, 0x10000, 0x400, 0x1010400, 0x1010404, 0x400, 0x1000404, 0x1010004, 0x1000000, 0x4, 0x404, 0x1000400, 0x1000400, 0x10400, 0x10400, 0x1010000, 0x1010000, 0x1000404, 0x10004, 0x1000004, 0x1000004, 0x10004, 0, 0x404, 0x10404, 0x1000000, 0x10000, 0x1010404, 0x4, 0x1010000, 0x1010400, 0x1000000, 0x1000000, 0x400, 0x1010004, 0x10000, 0x10400, 0x1000004, 0x400, 0x4, 0x1000404, 0x10404, 0x1010404, 0x10004, 0x1010000, 0x1000404, 0x1000004, 0x404, 0x10404, 0x1010400, 0x404, 0x1000400, 0x1000400, 0, 0x10004, 0x10400, 0, 0x1010004); + var spfunction2 = new Array(-0x7fef7fe0, -0x7fff8000, 0x8000, 0x108020, 0x100000, 0x20, -0x7fefffe0, -0x7fff7fe0, -0x7fffffe0, -0x7fef7fe0, -0x7fef8000, -0x8000000, -0x7fff8000, 0x100000, 0x20, -0x7fefffe0, 0x108000, 0x100020, -0x7fff7fe0, 0, -0x8000000, 0x8000, 0x108020, -0x7ff00000, 0x100020, -0x7fffffe0, 0, 0x108000, 0x8020, -0x7fef8000, -0x7ff00000, 0x8020, 0, 0x108020, -0x7fefffe0, 0x100000, -0x7fff7fe0, -0x7ff00000, -0x7fef8000, 0x8000, -0x7ff00000, -0x7fff8000, 0x20, -0x7fef7fe0, 0x108020, 0x20, 0x8000, -0x8000000, 0x8020, -0x7fef8000, 0x100000, -0x7fffffe0, 0x100020, -0x7fff7fe0, -0x7fffffe0, 0x100020, 0x108000, 0, -0x7fff8000, 0x8020, -0x8000000, -0x7fefffe0, -0x7fef7fe0, 0x108000); + var spfunction3 = new Array(0x208, 0x8020200, 0, 0x8020008, 0x8000200, 0, 0x20208, 0x8000200, 0x20008, 0x8000008, 0x8000008, 0x20000, 0x8020208, 0x20008, 0x8020000, 0x208, 0x8000000, 0x8, 0x8020200, 0x200, 0x20200, 0x8020000, 0x8020008, 0x20208, 0x8000208, 0x20200, 0x20000, 0x8000208, 0x8, 0x8020208, 0x200, 0x8000000, 0x8020200, 0x8000000, 0x20008, 0x208, 0x20000, 0x8020200, 0x8000200, 0, 0x200, 0x20008, 0x8020208, 0x8000200, 0x8000008, 0x200, 0, 0x8020008, 0x8000208, 0x20000, 0x8000000, 0x8020208, 0x8, 0x20208, 0x20200, 0x8000008, 0x8020000, 0x8000208, 0x208, 0x8020000, 0x20208, 0x8, 0x8020008, 0x20200); + var spfunction4 = new Array(0x802001, 0x2081, 0x2081, 0x80, 0x802080, 0x800081, 0x800001, 0x2001, 0, 0x802000, 0x802000, 0x802081, 0x81, 0, 0x800080, 0x800001, 0x1, 0x2000, 0x800000, 0x802001, 0x80, 0x800000, 0x2001, 0x2080, 0x800081, 0x1, 0x2080, 0x800080, 0x2000, 0x802080, 0x802081, 0x81, 0x800080, 0x800001, 0x802000, 0x802081, 0x81, 0, 0, 0x802000, 0x2080, 0x800080, 0x800081, 0x1, 0x802001, 0x2081, 0x2081, 0x80, 0x802081, 0x81, 0x1, 0x2000, 0x800001, 0x2001, 0x802080, 0x800081, 0x2001, 0x2080, 0x800000, 0x802001, 0x80, 0x800000, 0x2000, 0x802080); + var spfunction5 = new Array(0x100, 0x2080100, 0x2080000, 0x42000100, 0x80000, 0x100, 0x40000000, 0x2080000, 0x40080100, 0x80000, 0x2000100, 0x40080100, 0x42000100, 0x42080000, 0x80100, 0x40000000, 0x2000000, 0x40080000, 0x40080000, 0, 0x40000100, 0x42080100, 0x42080100, 0x2000100, 0x42080000, 0x40000100, 0, 0x42000000, 0x2080100, 0x2000000, 0x42000000, 0x80100, 0x80000, 0x42000100, 0x100, 0x2000000, 0x40000000, 0x2080000, 0x42000100, 0x40080100, 0x2000100, 0x40000000, 0x42080000, 0x2080100, 0x40080100, 0x100, 0x2000000, 0x42080000, 0x42080100, 0x80100, 0x42000000, 0x42080100, 0x2080000, 0, 0x40080000, 0x42000000, 0x80100, 0x2000100, 0x40000100, 0x80000, 0, 0x40080000, 0x2080100, 0x40000100); + var spfunction6 = new Array(0x20000010, 0x20400000, 0x4000, 0x20404010, 0x20400000, 0x10, 0x20404010, 0x400000, 0x20004000, 0x404010, 0x400000, 0x20000010, 0x400010, 0x20004000, 0x20000000, 0x4010, 0, 0x400010, 0x20004010, 0x4000, 0x404000, 0x20004010, 0x10, 0x20400010, 0x20400010, 0, 0x404010, 0x20404000, 0x4010, 0x404000, 0x20404000, 0x20000000, 0x20004000, 0x10, 0x20400010, 0x404000, 0x20404010, 0x400000, 0x4010, 0x20000010, 0x400000, 0x20004000, 0x20000000, 0x4010, 0x20000010, 0x20404010, 0x404000, 0x20400000, 0x404010, 0x20404000, 0, 0x20400010, 0x10, 0x4000, 0x20400000, 0x404010, 0x4000, 0x400010, 0x20004010, 0, 0x20404000, 0x20000000, 0x400010, 0x20004010); + var spfunction7 = new Array(0x200000, 0x4200002, 0x4000802, 0, 0x800, 0x4000802, 0x200802, 0x4200800, 0x4200802, 0x200000, 0, 0x4000002, 0x2, 0x4000000, 0x4200002, 0x802, 0x4000800, 0x200802, 0x200002, 0x4000800, 0x4000002, 0x4200000, 0x4200800, 0x200002, 0x4200000, 0x800, 0x802, 0x4200802, 0x200800, 0x2, 0x4000000, 0x200800, 0x4000000, 0x200800, 0x200000, 0x4000802, 0x4000802, 0x4200002, 0x4200002, 0x2, 0x200002, 0x4000000, 0x4000800, 0x200000, 0x4200800, 0x802, 0x200802, 0x4200800, 0x802, 0x4000002, 0x4200802, 0x4200000, 0x200800, 0, 0x2, 0x4200802, 0, 0x200802, 0x4200000, 0x800, 0x4000002, 0x4000800, 0x800, 0x200002); + var spfunction8 = new Array(0x10001040, 0x1000, 0x40000, 0x10041040, 0x10000000, 0x10001040, 0x40, 0x10000000, 0x40040, 0x10040000, 0x10041040, 0x41000, 0x10041000, 0x41040, 0x1000, 0x40, 0x10040000, 0x10000040, 0x10001000, 0x1040, 0x41000, 0x40040, 0x10040040, 0x10041000, 0x1040, 0, 0, 0x10040040, 0x10000040, 0x10001000, 0x41040, 0x40000, 0x41040, 0x40000, 0x10041000, 0x1000, 0x40, 0x10040040, 0x1000, 0x41040, 0x10001000, 0x40, 0x10000040, 0x10040000, 0x10040040, 0x10000000, 0x40000, 0x10001040, 0, 0x10041040, 0x40040, 0x10000040, 0x10040000, 0x10001000, 0x10001040, 0, 0x10041040, 0x41000, 0x41000, 0x1040, 0x1040, 0x40040, 0x10000000, 0x10041000); + var keys = des_createKeys(key); + var m = 0, + i, j, temp, temp2, right1, right2, left, right, looping; + var cbcleft, cbcleft2, cbcright, cbcright2; + var endloop, loopinc; + var len = message.length; + var chunk = 0; + var iterations = keys.length == 32 ? 3 : 9; + if (iterations == 3) { + looping = encrypt ? new Array(0, 32, 2) : new Array(30, -2, -2) + } else { + looping = encrypt ? new Array(0, 32, 2, 62, 30, -2, 64, 96, 2) : new Array(94, 62, -2, 32, 64, 2, 30, -2, -2) + } + message += "0円0円0円0円0円0円0円0円"; + result = ""; + tempresult = ""; + if (mode == 1) { + cbcleft = (iv.charCodeAt(m++) << 24) | (iv.charCodeAt(m++) << 16) | (iv.charCodeAt(m++) << 8) | iv.charCodeAt(m++); + cbcright = (iv.charCodeAt(m++) << 24) | (iv.charCodeAt(m++) << 16) | (iv.charCodeAt(m++) << 8) | iv.charCodeAt(m++); + m = 0 + } + while (m < len) { + if (encrypt) { + left = (message.charCodeAt(m++) << 16) | message.charCodeAt(m++); + right = (message.charCodeAt(m++) << 16) | message.charCodeAt(m++) + } else { + left = (message.charCodeAt(m++) << 24) | (message.charCodeAt(m++) << 16) | (message.charCodeAt(m++) << 8) | message.charCodeAt(m++); + right = (message.charCodeAt(m++) << 24) | (message.charCodeAt(m++) << 16) | (message.charCodeAt(m++) << 8) | message.charCodeAt(m++) + } + if (mode == 1) { + if (encrypt) { + left ^= cbcleft; + right ^= cbcright + } else { + cbcleft2 = cbcleft; + cbcright2 = cbcright; + cbcleft = left; + cbcright = right + } + } + temp = ((left>>> 4) ^ right) & 0x0f0f0f0f; + right ^= temp; + left ^= (temp << 4); + temp = ((left>>> 16) ^ right) & 0x0000ffff; + right ^= temp; + left ^= (temp << 16); + temp = ((right>>> 2) ^ left) & 0x33333333; + left ^= temp; + right ^= (temp << 2); + temp = ((right>>> 8) ^ left) & 0x00ff00ff; + left ^= temp; + right ^= (temp << 8); + temp = ((left>>> 1) ^ right) & 0x55555555; + right ^= temp; + left ^= (temp << 1); + left = ((left << 1) | (left>>> 31)); + right = ((right << 1) | (right>>> 31)); + for (j = 0; j < iterations; j += 3) { + endloop = looping[j + 1]; + loopinc = looping[j + 2]; + for (i = looping[j]; i != endloop; i += loopinc) { + right1 = right ^ keys[i]; + right2 = ((right>>> 4) | (right << 28)) ^ keys[i + 1]; + temp = left; + left = right; + right = temp ^ (spfunction2[(right1>>> 24) & 0x3f] | spfunction4[(right1>>> 16) & 0x3f] | spfunction6[(right1>>> 8) & 0x3f] | spfunction8[right1 & 0x3f] | spfunction1[(right2>>> 24) & 0x3f] | spfunction3[(right2>>> 16) & 0x3f] | spfunction5[(right2>>> 8) & 0x3f] | spfunction7[right2 & 0x3f]) + } + temp = left; + left = right; + right = temp + } + left = ((left>>> 1) | (left << 31)); + right = ((right>>> 1) | (right << 31)); + temp = ((left>>> 1) ^ right) & 0x55555555; + right ^= temp; + left ^= (temp << 1); + temp = ((right>>> 8) ^ left) & 0x00ff00ff; + left ^= temp; + right ^= (temp << 8); + temp = ((right>>> 2) ^ left) & 0x33333333; + left ^= temp; + right ^= (temp << 2); + temp = ((left>>> 16) ^ right) & 0x0000ffff; + right ^= temp; + left ^= (temp << 16); + temp = ((left>>> 4) ^ right) & 0x0f0f0f0f; + right ^= temp; + left ^= (temp << 4); + if (mode == 1) { + if (encrypt) { + cbcleft = left; + cbcright = right + } else { + left ^= cbcleft2; + right ^= cbcright2 + } + } + if (encrypt) { + tempresult += String.fromCharCode((left>>> 24), ((left>>> 16) & 0xff), ((left>>> 8) & 0xff), (left & 0xff), (right>>> 24), ((right>>> 16) & 0xff), ((right>>> 8) & 0xff), (right & 0xff)) + } else { + tempresult += String.fromCharCode(((left>>> 16) & 0xffff), (left & 0xffff), ((right>>> 16) & 0xffff), (right & 0xffff)) + } + encrypt ? chunk += 16 : chunk += 8; + if (chunk == 512) { + result += tempresult; + tempresult = ""; + chunk = 0 + } + } + return result + tempresult +} + +function des_createKeys(key) { + pc2bytes0 = new Array(0, 0x4, 0x20000000, 0x20000004, 0x10000, 0x10004, 0x20010000, 0x20010004, 0x200, 0x204, 0x20000200, 0x20000204, 0x10200, 0x10204, 0x20010200, 0x20010204); + pc2bytes1 = new Array(0, 0x1, 0x100000, 0x100001, 0x4000000, 0x4000001, 0x4100000, 0x4100001, 0x100, 0x101, 0x100100, 0x100101, 0x4000100, 0x4000101, 0x4100100, 0x4100101); + pc2bytes2 = new Array(0, 0x8, 0x800, 0x808, 0x1000000, 0x1000008, 0x1000800, 0x1000808, 0, 0x8, 0x800, 0x808, 0x1000000, 0x1000008, 0x1000800, 0x1000808); + pc2bytes3 = new Array(0, 0x200000, 0x8000000, 0x8200000, 0x2000, 0x202000, 0x8002000, 0x8202000, 0x20000, 0x220000, 0x8020000, 0x8220000, 0x22000, 0x222000, 0x8022000, 0x8222000); + pc2bytes4 = new Array(0, 0x40000, 0x10, 0x40010, 0, 0x40000, 0x10, 0x40010, 0x1000, 0x41000, 0x1010, 0x41010, 0x1000, 0x41000, 0x1010, 0x41010); + pc2bytes5 = new Array(0, 0x400, 0x20, 0x420, 0, 0x400, 0x20, 0x420, 0x2000000, 0x2000400, 0x2000020, 0x2000420, 0x2000000, 0x2000400, 0x2000020, 0x2000420); + pc2bytes6 = new Array(0, 0x10000000, 0x80000, 0x10080000, 0x2, 0x10000002, 0x80002, 0x10080002, 0, 0x10000000, 0x80000, 0x10080000, 0x2, 0x10000002, 0x80002, 0x10080002); + pc2bytes7 = new Array(0, 0x10000, 0x800, 0x10800, 0x20000000, 0x20010000, 0x20000800, 0x20010800, 0x20000, 0x30000, 0x20800, 0x30800, 0x20020000, 0x20030000, 0x20020800, 0x20030800); + pc2bytes8 = new Array(0, 0x40000, 0, 0x40000, 0x2, 0x40002, 0x2, 0x40002, 0x2000000, 0x2040000, 0x2000000, 0x2040000, 0x2000002, 0x2040002, 0x2000002, 0x2040002); + pc2bytes9 = new Array(0, 0x10000000, 0x8, 0x10000008, 0, 0x10000000, 0x8, 0x10000008, 0x400, 0x10000400, 0x408, 0x10000408, 0x400, 0x10000400, 0x408, 0x10000408); + pc2bytes10 = new Array(0, 0x20, 0, 0x20, 0x100000, 0x100020, 0x100000, 0x100020, 0x2000, 0x2020, 0x2000, 0x2020, 0x102000, 0x102020, 0x102000, 0x102020); + pc2bytes11 = new Array(0, 0x1000000, 0x200, 0x1000200, 0x200000, 0x1200000, 0x200200, 0x1200200, 0x4000000, 0x5000000, 0x4000200, 0x5000200, 0x4200000, 0x5200000, 0x4200200, 0x5200200); + pc2bytes12 = new Array(0, 0x1000, 0x8000000, 0x8001000, 0x80000, 0x81000, 0x8080000, 0x8081000, 0x10, 0x1010, 0x8000010, 0x8001010, 0x80010, 0x81010, 0x8080010, 0x8081010); + pc2bytes13 = new Array(0, 0x4, 0x100, 0x104, 0, 0x4, 0x100, 0x104, 0x1, 0x5, 0x101, 0x105, 0x1, 0x5, 0x101, 0x105); + var iterations = key.length>= 24 ? 3 : 1; + var keys = new Array(32 * iterations); + var shifts = new Array(0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0); + var lefttemp, righttemp, m = 0, + n = 0, + temp; + for (var j = 0; j < iterations; j++) { + left = (key.charCodeAt(m++) << 24) | (key.charCodeAt(m++) << 16) | (key.charCodeAt(m++) << 8) | key.charCodeAt(m++); + right = (key.charCodeAt(m++) << 24) | (key.charCodeAt(m++) << 16) | (key.charCodeAt(m++) << 8) | key.charCodeAt(m++); + temp = ((left>>> 4) ^ right) & 0x0f0f0f0f; + right ^= temp; + left ^= (temp << 4); + temp = ((right>>> -16) ^ left) & 0x0000ffff; + left ^= temp; + right ^= (temp << -16); + temp = ((left>>> 2) ^ right) & 0x33333333; + right ^= temp; + left ^= (temp << 2); + temp = ((right>>> -16) ^ left) & 0x0000ffff; + left ^= temp; + right ^= (temp << -16); + temp = ((left>>> 1) ^ right) & 0x55555555; + right ^= temp; + left ^= (temp << 1); + temp = ((right>>> 8) ^ left) & 0x00ff00ff; + left ^= temp; + right ^= (temp << 8); + temp = ((left>>> 1) ^ right) & 0x55555555; + right ^= temp; + left ^= (temp << 1); + temp = (left << 8) | ((right>>> 20) & 0x000000f0); + left = (right << 24) | ((right << 8) & 0xff0000) | ((right>>> 8) & 0xff00) | ((right>>> 24) & 0xf0); + right = temp; + for (i = 0; i < shifts.length; i++) { + if (shifts[i]) { + left = (left << 2) | (left>>> 26); + right = (right << 2) | (right>>> 26) + } else { + left = (left << 1) | (left>>> 27); + right = (right << 1) | (right>>> 27) + } + left &= -0xf; + right &= -0xf; + lefttemp = pc2bytes0[left>>> 28] | pc2bytes1[(left>>> 24) & 0xf] | pc2bytes2[(left>>> 20) & 0xf] | pc2bytes3[(left>>> 16) & 0xf] | pc2bytes4[(left>>> 12) & 0xf] | pc2bytes5[(left>>> 8) & 0xf] | pc2bytes6[(left>>> 4) & 0xf]; + righttemp = pc2bytes7[right>>> 28] | pc2bytes8[(right>>> 24) & 0xf] | pc2bytes9[(right>>> 20) & 0xf] | pc2bytes10[(right>>> 16) & 0xf] | pc2bytes11[(right>>> 12) & 0xf] | pc2bytes12[(right>>> 8) & 0xf] | pc2bytes13[(right>>> 4) & 0xf]; + temp = ((righttemp>>> 16) ^ lefttemp) & 0x0000ffff; + keys[n++] = lefttemp ^ temp; + keys[n++] = righttemp ^ (temp << 16) + } + } + return keys +} + +function stringToHex(s) { + var r = ""; + var hexes = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"); + for (var i = 0; i < (s.length); i++) { + r += hexes[s.charCodeAt(i)>> 4] + hexes[s.charCodeAt(i) & 0xf] + } + return r +} + +function HexTostring(s) { + var r = ""; + for (var i = 0; i < s.length; i += 2) { + var sxx = parseInt(s.substring(i, i + 2), 16); + r += String.fromCharCode(sxx) + } + return r +} + +function jsencrypt(key, message) { + var ciphertext = stringToHex(des(key, message, 1, 0)); + return ciphertext +} + +var SYAAZ = "KMZF8SHW37QSG37NDFGDZHYQL5F08FA84CAVVR6FVVG0E8VI"; +var EDEZU = "N4XZSQ9ABZBL5B3BWDQZL1AQFM9ZUP1NSRA5OTEOICEV6RFJ"; +var KGQJO = "9XLRTJH6N4M7I2PLUX2YDTT2CRYKPR5BV7NGCKSGX4XUI5CK"; +var ABHCO = "CGKBDH9KUW707AM9CVDKZD6268SJB1WPJMNQ5MZOKMWQAOWK"; +var LHLCJ = "9HOCO7AP86HS0D3GZDISTDJ2XF7VW1BHB1LZS77MFTG50XHG"; +var XMPBD = "LK1N5BBG74R4LP0JKI9DM8ZTI2Q7R7366OECJHMEOY9W5ZDC"; +var ZZOPR = "UOI0X5DBJDA7Y4ETS55693TKVWOV8EAMSP6ZXB94SAN21AU4"; +var ZMKUX = "GH6SXZK7VIMTCV03PPG61WBWS0DG3GEAV5IAK2NW7252CPQ5"; + +function getToken(KSOTS, keyName) { + var asdasd = jsencrypt(LHLCJ, keyName.toString()); + return KSOTS + "," + asdasd +} \ No newline at end of file diff --git "a/30-346円267円230円344円270円200円345円205円224円346円225円260円346円215円256円346円237円245円350円257円242円JS347円240円264円350円247円243円/taoyizhu.py" "b/30-346円267円230円344円270円200円345円205円224円346円225円260円346円215円256円346円237円245円350円257円242円JS347円240円264円350円247円243円/taoyizhu.py" new file mode 100644 index 0000000..e57344f --- /dev/null +++ "b/30-346円267円230円344円270円200円345円205円224円346円225円260円346円215円256円346円237円245円350円257円242円JS347円240円264円350円247円243円/taoyizhu.py" @@ -0,0 +1,25 @@ +import execjs + + +def get_js_function(js_path, func_name, *func_args): + ''' + 获取指定目录下的js代码, 并且指定js代码中函数的名字以及函数的参数。 + :param js_path: js代码的位置 + :param func_name: js代码中函数的名字 + :param func_args: js代码中函数的参数 + :return: 返回调用js函数的结果 + ''' + + with open(js_path, encoding='utf-8') as fp: + js = fp.read() + ctx = execjs.compile(js) + return ctx.call(func_name, func_args[0], func_args[1]) + +if __name__ == '__main__': + # 给个star吧 + passwd = get_js_function('taoyizhu.js', 'getToken', "2649A03F25BAB1FB0460F1B77F77DE60CB0C91241FC37F72", '汲冢涛') + print('*'*80) + print(passwd) + print('*'*80) + print('@欢迎Star!') + print('@有问题请联系: scrapy@qq.com') \ No newline at end of file diff --git "a/31-345円233円275円345円256円266円351円243円237円345円223円201円345円256円211円345円205円250円346円212円275円346円240円267円346円243円200円351円252円214円344円277円241円346円201円257円347円263円273円347円273円237円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/666.js" "b/31-345円233円275円345円256円266円351円243円237円345円223円201円345円256円211円345円205円250円346円212円275円346円240円267円346円243円200円351円252円214円344円277円241円346円201円257円347円263円273円347円273円237円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/666.js" new file mode 100644 index 0000000..f588f82 --- /dev/null +++ "b/31-345円233円275円345円256円266円351円243円237円345円223円201円345円256円211円345円205円250円346円212円275円346円240円267円346円243円200円351円252円214円344円277円241円346円201円257円347円263円273円347円273円237円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/666.js" @@ -0,0 +1,634 @@ +function mdfive(mdfivestr) { + var createmdfiveString = function (string) { + var x = Array() + var k, AA, BB, CC, DD, a, b, c, d + var S11 = 7, + S12 = 12, + S13 = 17, + S14 = 22 + var S21 = 5, + S22 = 9, + S23 = 14, + S24 = 20 + var S31 = 4, + S32 = 11, + S33 = 16, + S34 = 23 + var S41 = 6, + S42 = 10, + S43 = 15, + S44 = 21 + string = uTF8Encode(string) + x = convertToWordArray(string) + a = 0x67452301 + b = 0xEFCDAB89 + c = 0x98BADCFE + d = 0x10325476 + for (k = 0; k < x.length; k += 16) { + AA = a + BB = b + CC = c + DD = d + a = FF(a, b, c, d, x[k + 0], S11, 0xD76AA478) + d = FF(d, a, b, c, x[k + 1], S12, 0xE8C7B756) + c = FF(c, d, a, b, x[k + 2], S13, 0x242070DB) + b = FF(b, c, d, a, x[k + 3], S14, 0xC1BDCEEE) + a = FF(a, b, c, d, x[k + 4], S11, 0xF57C0FAF) + d = FF(d, a, b, c, x[k + 5], S12, 0x4787C62A) + c = FF(c, d, a, b, x[k + 6], S13, 0xA8304613) + b = FF(b, c, d, a, x[k + 7], S14, 0xFD469501) + a = FF(a, b, c, d, x[k + 8], S11, 0x698098D8) + d = FF(d, a, b, c, x[k + 9], S12, 0x8B44F7AF) + c = FF(c, d, a, b, x[k + 10], S13, 0xFFFF5BB1) + b = FF(b, c, d, a, x[k + 11], S14, 0x895CD7BE) + a = FF(a, b, c, d, x[k + 12], S11, 0x6B901122) + d = FF(d, a, b, c, x[k + 13], S12, 0xFD987193) + c = FF(c, d, a, b, x[k + 14], S13, 0xA679438E) + b = FF(b, c, d, a, x[k + 15], S14, 0x49B40821) + a = GG(a, b, c, d, x[k + 1], S21, 0xF61E2562) + d = GG(d, a, b, c, x[k + 6], S22, 0xC040B340) + c = GG(c, d, a, b, x[k + 11], S23, 0x265E5A51) + b = GG(b, c, d, a, x[k + 0], S24, 0xE9B6C7AA) + a = GG(a, b, c, d, x[k + 5], S21, 0xD62F105D) + d = GG(d, a, b, c, x[k + 10], S22, 0x2441453) + c = GG(c, d, a, b, x[k + 15], S23, 0xD8A1E681) + b = GG(b, c, d, a, x[k + 4], S24, 0xE7D3FBC8) + a = GG(a, b, c, d, x[k + 9], S21, 0x21E1CDE6) + d = GG(d, a, b, c, x[k + 14], S22, 0xC33707D6) + c = GG(c, d, a, b, x[k + 3], S23, 0xF4D50D87) + b = GG(b, c, d, a, x[k + 8], S24, 0x455A14ED) + a = GG(a, b, c, d, x[k + 13], S21, 0xA9E3E905) + d = GG(d, a, b, c, x[k + 2], S22, 0xFCEFA3F8) + c = GG(c, d, a, b, x[k + 7], S23, 0x676F02D9) + b = GG(b, c, d, a, x[k + 12], S24, 0x8D2A4C8A) + a = HH(a, b, c, d, x[k + 5], S31, 0xFFFA3942) + d = HH(d, a, b, c, x[k + 8], S32, 0x8771F681) + c = HH(c, d, a, b, x[k + 11], S33, 0x6D9D6122) + b = HH(b, c, d, a, x[k + 14], S34, 0xFDE5380C) + a = HH(a, b, c, d, x[k + 1], S31, 0xA4BEEA44) + d = HH(d, a, b, c, x[k + 4], S32, 0x4BDECFA9) + c = HH(c, d, a, b, x[k + 7], S33, 0xF6BB4B60) + b = HH(b, c, d, a, x[k + 10], S34, 0xBEBFBC70) + a = HH(a, b, c, d, x[k + 13], S31, 0x289B7EC6) + d = HH(d, a, b, c, x[k + 0], S32, 0xEAA127FA) + c = HH(c, d, a, b, x[k + 3], S33, 0xD4EF3085) + b = HH(b, c, d, a, x[k + 6], S34, 0x4881D05) + a = HH(a, b, c, d, x[k + 9], S31, 0xD9D4D039) + d = HH(d, a, b, c, x[k + 12], S32, 0xE6DB99E5) + c = HH(c, d, a, b, x[k + 15], S33, 0x1FA27CF8) + b = HH(b, c, d, a, x[k + 2], S34, 0xC4AC5665) + a = II(a, b, c, d, x[k + 0], S41, 0xF4292244) + d = II(d, a, b, c, x[k + 7], S42, 0x432AFF97) + c = II(c, d, a, b, x[k + 14], S43, 0xAB9423A7) + b = II(b, c, d, a, x[k + 5], S44, 0xFC93A039) + a = II(a, b, c, d, x[k + 12], S41, 0x655B59C3) + d = II(d, a, b, c, x[k + 3], S42, 0x8F0CCC92) + c = II(c, d, a, b, x[k + 10], S43, 0xFFEFF47D) + b = II(b, c, d, a, x[k + 1], S44, 0x85845DD1) + a = II(a, b, c, d, x[k + 8], S41, 0x6FA87E4F) + d = II(d, a, b, c, x[k + 15], S42, 0xFE2CE6E0) + c = II(c, d, a, b, x[k + 6], S43, 0xA3014314) + b = II(b, c, d, a, x[k + 13], S44, 0x4E0811A1) + a = II(a, b, c, d, x[k + 4], S41, 0xF7537E82) + d = II(d, a, b, c, x[k + 11], S42, 0xBD3AF235) + c = II(c, d, a, b, x[k + 2], S43, 0x2AD7D2BB) + b = II(b, c, d, a, x[k + 9], S44, 0xEB86D391) + a = addUnsigned(a, AA) + b = addUnsigned(b, BB) + c = addUnsigned(c, CC) + d = addUnsigned(d, DD) + } + var tempValue = wordToHex(a) + wordToHex(b) + wordToHex(c) + wordToHex(d) + return tempValue.toLowerCase() + } + var rotateLeft = function (lValue, iShiftBits) { + return (lValue << iShiftBits) | (lValue>>> (32 - iShiftBits)) + } + var addUnsigned = function (lX, lY) { + var lX4, lY4, lX8, lY8, lResult + lX8 = (lX & 0x80000000) + lY8 = (lY & 0x80000000) + lX4 = (lX & 0x40000000) + lY4 = (lY & 0x40000000) + lResult = (lX & 0x3FFFFFFF) + (lY & 0x3FFFFFFF) + if (lX4 & lY4) return (lResult ^ 0x80000000 ^ lX8 ^ lY8) + if (lX4 | lY4) { + if (lResult & 0x40000000) return (lResult ^ 0xC0000000 ^ lX8 ^ lY8) + else return (lResult ^ 0x40000000 ^ lX8 ^ lY8) + } else { + return (lResult ^ lX8 ^ lY8) + } + } + var F = function (x, y, z) { + return (x & y) | ((~x) & z) + } + var G = function (x, y, z) { + return (x & z) | (y & (~z)) + } + var H = function (x, y, z) { + return (x ^ y ^ z) + } + var I = function (x, y, z) { + return (y ^ (x | (~z))) + } + var FF = function (a, b, c, d, x, s, ac) { + a = addUnsigned(a, addUnsigned(addUnsigned(F(b, c, d), x), ac)) + return addUnsigned(rotateLeft(a, s), b) + } + var GG = function (a, b, c, d, x, s, ac) { + a = addUnsigned(a, addUnsigned(addUnsigned(G(b, c, d), x), ac)) + return addUnsigned(rotateLeft(a, s), b) + } + var HH = function (a, b, c, d, x, s, ac) { + a = addUnsigned(a, addUnsigned(addUnsigned(H(b, c, d), x), ac)) + return addUnsigned(rotateLeft(a, s), b) + } + var II = function (a, b, c, d, x, s, ac) { + a = addUnsigned(a, addUnsigned(addUnsigned(I(b, c, d), x), ac)) + return addUnsigned(rotateLeft(a, s), b) + } + var convertToWordArray = function (string) { + var lWordCount + var lMessageLength = string.length + var lNumberOfWordsTempOne = lMessageLength + 8 + var lNumberOfWordsTempTwo = (lNumberOfWordsTempOne - (lNumberOfWordsTempOne % 64)) / 64 + var lNumberOfWords = (lNumberOfWordsTempTwo + 1) * 16 + var lWordArray = Array(lNumberOfWords - 1) + var lBytePosition = 0 + var lByteCount = 0 + while (lByteCount < lMessageLength) { + lWordCount = (lByteCount - (lByteCount % 4)) / 4 + lBytePosition = (lByteCount % 4) * 8 + lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount) << lBytePosition)) + lByteCount++ + } + lWordCount = (lByteCount - (lByteCount % 4)) / 4 + lBytePosition = (lByteCount % 4) * 8 + lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80 << lBytePosition) + lWordArray[lNumberOfWords - 2] = lMessageLength << 3 + lWordArray[lNumberOfWords - 1] = lMessageLength>>> 29 + return lWordArray + } + var wordToHex = function (lValue) { + var WordToHexValue = '', + WordToHexValueTemp = '', + lByte, lCount + for (lCount = 0; lCount <= 3; lCount++) { + lByte = (lValue>>> (lCount * 8)) & 255 + WordToHexValueTemp = '0' + lByte.toString(16) + WordToHexValue = WordToHexValue + WordToHexValueTemp.substr(WordToHexValueTemp.length - 2, 2) + } + return WordToHexValue + } + var uTF8Encode = function (string) { + string = string.toString().replace(/\x0d\x0a/g, '\x0a') + var output = '' + for (var n = 0; n < string.length; n++) { + var c = string.charCodeAt(n) + if (c < 128) { + output += String.fromCharCode(c) + } else if ((c> 127) && (c < 2048)) { + output += String.fromCharCode((c>> 6) | 192) + output += String.fromCharCode((c & 63) | 128) + } else { + output += String.fromCharCode((c>> 12) | 224) + output += String.fromCharCode(((c>> 6) & 63) | 128) + output += String.fromCharCode((c & 63) | 128) + } + } + return output + } + return createmdfiveString(mdfivestr) +} + +var tncode = { + _obj: null, + _tncode: null, + _img: null, + _img_loaded: false, + _is_draw_bg: false, + _is_moving: false, + _block_start_x: 0, + _block_start_y: 0, + _doing: false, + _mark_w: 50, + _mark_h: 50, + _mark_offset: 0, + _img_w: 240, + _img_h: 150, + _result: false, + _err_c: 0, + _onsuccess: null, + _onclose: null, + _bind: function (elm, evType, fn) { + //event.preventDefault(); + if (elm.addEventListener) { + elm.addEventListener(evType, fn);//DOM2.0 + return true; + } else if (elm.attachEvent) { + var r = elm.attachEvent(evType, fn);//IE5+ + return r; + } + }, + _block_start_move: function (e) { + if (tncode._doing || !tncode._img_loaded) { + return; + } + e.preventDefault(); + var theEvent = window.event || e; + if (theEvent.touches) { + theEvent = theEvent.touches[0]; + } + + console.log("_block_start_move"); + + var obj = document.getElementByClassName('slide_block_text'); + obj.style.display = "none"; + tncode._draw_bg(); + tncode._block_start_x = theEvent.clientX; + tncode._block_start_y = theEvent.clientY; + tncode._doing = true; + tncode._is_moving = true; + }, + _block_on_move: function (e) { + if (!tncode._doing) return true; + if (!tncode._is_moving) return true; + e.preventDefault(); + var theEvent = window.event || e; + if (theEvent.touches) { + theEvent = theEvent.touches[0]; + } + tncode._is_moving = true; + console.log("_block_on_move"); + //document.getElementById('msg').innerHTML = "move:"+theEvent.clientX+";"+theEvent.clientY; + var offset = theEvent.clientX - tncode._block_start_x; + if (offset < 0) { + offset = 0; + } + var max_off = tncode._img_w - tncode._mark_w; + if (offset> max_off) { + offset = max_off; + } + var obj = document.getElementByClassName('slide_block'); + + obj.style.cssText = "transform: translate(" + offset + "px, 0px)"; + tncode._mark_offset = offset / max_off * (tncode._img_w - tncode._mark_w); + tncode._draw_bg(); + tncode._draw_mark(); + }, + _block_on_end: function (e) { + if (!tncode._doing) return true; + e.preventDefault(); + var theEvent = window.event || e; + if (theEvent.touches) { + theEvent = theEvent.touches[0]; + } + console.log("_block_on_end"); + tncode._is_moving = false; + tncode._send_result(); + }, + _send_result: function () { + var haddle = {success: tncode._send_result_success, failure: tncode._send_result_failure}; + tncode._result = false; + var re = new _ajax(); + var arr = ["ch","e","ck","?"]; + var x = tncode._param(1828); + var y = tncode._param(3228); + var offset = tncode._param(55528); + var token = mdfive(tncode._param(77528)); + var user = mdfive(tncode._param(961828)); + re.request('g'+'et', tncode._currentUrl() + arr.join("") + + "t"+"n_"+"c=" + mdfive(x).slice(0, 6) + + "&t"+"n_"+"w=" + mdfive(y).slice(0, 6) + + "&t"+"n_"+"u=" + mdfive(offset).slice(0, 6) + + "&t"+"n_"+"s=" + mdfive(token).slice(0, 6) + + "&t"+"n_"+"p=" + mdfive(user).slice(0, 6) + + "&t"+"n_"+"c=" + mdfive(tncode._mark_w).slice(0, 6) + + "&t"+"n_"+"r=" + mdfive(tncode._mark_offset).slice(0, 6) + + "&t"+"n_"+"k=" + mdfive(tncode._mark_h).slice(0, 6) + + "&x=" + x + + "&y=" + y + + "&o"+"f"+"f"+"s"+"e"+"t"+"=" + offset + + "&t"+"o"+"k"+"e"+"n"+"=" + token + + "&u=" + user, haddle); + }, + _bycrept: function () { + return mdfive(tncode._mark_offset).slice(0, 6) + }, + _param: function (num) { + return Math.ceil(Math.random() * num); + }, + _send_result_success: function (responseText, responseXML) { + tncode._doing = false; + // if (responseText == 'ok') { + if (JSON.parse(responseText).status==0) { + tncode._tncode.innerHTML = '√验证成功'; + tncode._showmsg('√验证成功', 1); + tncode._result = true; + document.getElementByClassName('hgroup').style.display = "block"; + setTimeout(tncode.hide, 1500); + setTimeout(function () { + if (tncode._onsuccess) { + tncode._onsuccess(JSON.parse(responseText)["data"]); + } + }, 2000); + + } else { + var obj = document.getElementById('tncode_div'); + addClass(obj, 'dd'); + setTimeout(function () { + removeClass(obj, 'dd'); + }, 200); + tncode._result = false; + tncode._showmsg('验证失败'); + tncode._err_c++; + if (tncode._err_c> 5) { + tncode.refresh(); + } + } + }, + _send_result_failure: function (xhr, status) { + console.log(435432) + }, + _draw_fullbg: function () { + var canvas_bg = document.getElementByClassName('tncode_canvas_bg'); + var ctx_bg = canvas_bg.getContext('2d'); + ctx_bg.drawImage(tncode._img, 0, tncode._img_h * 2, tncode._img_w, tncode._img_h, 0, 0, tncode._img_w, tncode._img_h); + }, + _draw_bg: function () { + if (tncode._is_draw_bg) { + return; + } + tncode._is_draw_bg = true; + var canvas_bg = document.getElementByClassName('tncode_canvas_bg'); + var ctx_bg = canvas_bg.getContext('2d'); + ctx_bg.drawImage(tncode._img, 0, 0, tncode._img_w, tncode._img_h, 0, 0, tncode._img_w, tncode._img_h); + }, + _draw_mark: function () { + var canvas_mark = document.getElementByClassName('tncode_canvas_mark'); + var ctx_mark = canvas_mark.getContext('2d'); + //清理画布 + ctx_mark.clearRect(0, 0, canvas_mark.width, canvas_mark.height); + ctx_mark.drawImage(tncode._img, 0, tncode._img_h, tncode._mark_w, tncode._img_h, tncode._mark_offset, 0, tncode._mark_w, tncode._img_h); + var imageData = ctx_mark.getImageData(0, 0, tncode._img_w, tncode._img_h); + // 获取画布的像素信息 + // 是一个一维数组,包含以 RGBA 顺序的数据,数据使用 0 至 255(包含)的整数表示 + // 如:图片由两个像素构成,一个像素是白色,一个像素是黑色,那么 data 为 + // [255,255,255,255,0,0,0,255] + // 这个一维数组可以看成是两个像素中RBGA通道的数组的集合即: + // [R,G,B,A].concat([R,G,B,A]) + var data = imageData.data; + //alert(data.length/4); + var x = tncode._img_h, y = tncode._img_w; + for (var j = 0; j < x; j++) { + var ii = 1, k1 = -1; + for (var k = 0; k < y && k>= 0 && k> k1;) { + // 得到 RGBA 通道的值 + var i = (j * y + k) * 4; + k += ii; + var r = data[i] + , g = data[i + 1] + , b = data[i + 2]; + // 我们从最下面那张颜色生成器中可以看到在图片的右上角区域,有一小块在 + // 肉眼的观察下基本都是白色的,所以我在这里把 RGB 值都在 245 以上的 + // 的定义为白色 + // 大家也可以自己定义的更精确,或者更宽泛一些 + if (r + g + b < 200) data[i + 3] = 0; + else { + var arr_pix = [1, -5]; + var arr_op = [250, 0]; + for (var i = 1; i < arr_pix[0] - arr_pix[1]; i++) { + var iiii = arr_pix[0] - 1 * i; + var op = parseInt(arr_op[0] - (arr_op[0] - arr_op[1]) / (arr_pix[0] - arr_pix[1]) * i); + var iii = (j * y + k + iiii * ii) * 4; + data[iii + 3] = op; + } + if (ii == -1) { + break; + } + k1 = k; + k = y - 1; + ii = -1; + } + ; + } + } + ctx_mark.putImageData(imageData, 0, 0); + }, + _reset: function () { + tncode._mark_offset = 0; + tncode._draw_bg(); + tncode._draw_mark(); + var obj = document.getElementByClassName('slide_block'); + obj.style.cssText = "transform: translate(0px, 0px)"; + }, + show: function () { + var obj = document.getElementByClassName('hgroup'); + if (obj) { + obj.style.display = "none"; + } + tncode.refresh(); + tncode._tncode = this; + document.getElementById('tncode_div_bg').style.display = "block"; + document.getElementById('tncode_div').style.display = "block"; + }, + abortHide: function (){ + //console.log(325345) + tncode.hide() + if (tncode._onclose) { + tncode._onclose(); + } + }, + hide: function () { + document.getElementById('tncode_div_bg').style.display = "none"; + document.getElementById('tncode_div').style.display = "none"; + }, + _showmsg: function (msg, status) { + if (!status) { + status = 0; + var obj = document.getElementByClassName('tncode_msg_error'); + } else { + var obj = document.getElementByClassName('tncode_msg_ok'); + } + obj.innerHTML = msg; + var setOpacity = function (ele, opacity) { + if (ele.style.opacity != undefined) { + ///兼容FF和GG和新版本IE + ele.style.opacity = opacity / 100; + + } else { + ///兼容老版本ie + ele.style.filter = "alpha(opacity=" + opacity + ")"; + } + }; + + function fadeout(ele, opacity, speed) { + if (ele) { + var v = ele.style.filter.replace("alpha(opacity=", "").replace(")", "") || ele.style.opacity || 100; + v < 1 && (v = v * 100); + var count = speed / 1000; + var avg = (100 - opacity) / count; + var timer = null; + timer = setInterval(function () { + if (v - avg> opacity) { + v -= avg; + setOpacity(ele, v); + } else { + setOpacity(ele, 0); + if (status == 0) { + tncode._reset(); + } + clearInterval(timer); + } + }, 100); + } + } + + function fadein(ele, opacity, speed) { + if (ele) { + var v = ele.style.filter.replace("alpha(opacity=", "").replace(")", "") || ele.style.opacity; + v < 1 && (v = v * 100); + var count = speed / 1000; + var avg = count < 2 ? (opacity / count) : (opacity / count - 1); + var timer = null; + timer = setInterval(function () { + if (v < opacity) { + v += avg; + setOpacity(ele, v); + } else { + clearInterval(timer); + setTimeout(function () { + fadeout(obj, 0, 6000); + }, 1000); + } + }, 100); + } + } + + fadein(obj, 80, 4000); + }, + _html: function () { + var d = document.getElementById('tncode_div_bg'); + if (d) return; + var html = '
'; + var bo = document.getElementsByTagName('body'); + appendHTML(bo[0], html); + }, + _currentUrl: function () { + // var list = document.getElementsByTagName('script'); + // for (var i in list) { + // var d = list[i]; + // if (d.src.indexOf('mycaptcha') !== -1) {//js文件名一定要带这个字符 + // var arr = d.src.split('mycaptcha'); + // return arr[0]; + // } + // } + return "/Admin/Captcha/"; + }, + refresh: function () { + var isSupportWebp = !![].map && document.createElement('canvas').toDataURL('image/webp').indexOf('data:image/webp') == 0; + var _this = this; + tncode._err_c = 0; + tncode._is_draw_bg = false; + tncode._result = false; + tncode._img_loaded = false; + var obj = document.getElementByClassName('tncode_canvas_bg'); + obj.style.display = "none"; + obj = document.getElementByClassName('tncode_canvas_mark'); + obj.style.display = "none"; + tncode._img = new Image(); + var img_url = tncode._currentUrl() + "getcaptcha?t=" + Math.random(); + if (!isSupportWebp) {//浏览器不支持webp + img_url += "&nowebp=1"; + } + tncode._img.src = img_url; + tncode._img.onload = function () { + tncode._draw_fullbg(); + var canvas_mark = document.getElementByClassName('tncode_canvas_mark'); + var ctx_mark = canvas_mark.getContext('2d'); + //清理画布 + ctx_mark.clearRect(0, 0, canvas_mark.width, canvas_mark.height); + tncode._img_loaded = true; + obj = document.getElementByClassName('tncode_canvas_bg'); + obj.style.display = ""; + obj = document.getElementByClassName('tncode_canvas_mark'); + obj.style.display = ""; + }; + //alert("Hong Kong ForHarvest Technology and Culture Development Co. Limited".length); + obj = document.getElementByClassName('slide_block'); + obj.style.cssText = "transform: translate(0px, 0px)"; + obj = document.getElementByClassName('slide_block_text'); + obj.style.display = "block"; + }, + init: function () { + var _this = this; + if (!tncode._img) { + tncode._html(); + var obj = document.getElementByClassName('slide_block'); + + tncode._bind(obj, 'mousedown', _this._block_start_move); + tncode._bind(document, 'mousemove', _this._block_on_move); + tncode._bind(document, 'mouseup', _this._block_on_end); + + tncode._bind(obj, 'touchstart', _this._block_start_move); + tncode._bind(document, 'touchmove', _this._block_on_move); + tncode._bind(document, 'touchend', _this._block_on_end); + + var obj = document.getElementByClassName('tncode_close'); + tncode._bind(obj, 'touchstart', _this.abortHide); + tncode._bind(obj, 'click', _this.abortHide); + var obj = document.getElementByClassName('tncode_refresh'); + + tncode._bind(obj, 'touchstart', _this.refresh); + tncode._bind(obj, 'click', _this.refresh); + + + var objs = document.getElementByClassName('tncode', -1); + for (var i in objs) { + var o = objs[i]; + o.innerHTML = '点击按钮进行验证'; + tncode._bind(o, 'touchstart', _this.show); + tncode._bind(o, 'click', _this.show); + } + } + }, + result: function () { + return tncode._result; + }, + onsuccess: function (fn) { + tncode._onsuccess = fn; + }, + onclose: function (fn) { + tncode._onclose = fn; + } +}; + +function _param(num) { + return Math.ceil(Math.random() * num); +} + +function parmsData(_mark_offset) { + var arr = ["ch","e","ck","?"]; + var x = tncode._param(1828); + var y = tncode._param(3228); + var offset = tncode._param(55528); + var token = mdfive(tncode._param(77528)); + var user = mdfive(tncode._param(961828)); + var params = tncode._currentUrl() + arr.join("") + + "t"+"n_"+"c=" + mdfive(x).slice(0, 6) + + "&t"+"n_"+"w=" + mdfive(y).slice(0, 6) + + "&t"+"n_"+"u=" + mdfive(offset).slice(0, 6) + + "&t"+"n_"+"s=" + mdfive(token).slice(0, 6) + + "&t"+"n_"+"p=" + mdfive(user).slice(0, 6) + + "&t"+"n_"+"c=" + mdfive(tncode._mark_w).slice(0, 6) + + "&t"+"n_"+"r=" + mdfive(_mark_offset).slice(0, 6) + + "&t"+"n_"+"k=" + mdfive(tncode._mark_h).slice(0, 6) + + "&x=" + x + + "&y=" + y + + "&o"+"f"+"f"+"s"+"e"+"t"+"=" + offset + + "&t"+"o"+"k"+"e"+"n"+"=" + token + + "&u=" + user; + return params +} + +console.log(parmsData(50)) \ No newline at end of file diff --git "a/31-345円233円275円345円256円266円351円243円237円345円223円201円345円256円211円345円205円250円346円212円275円346円240円267円346円243円200円351円252円214円344円277円241円346円201円257円347円263円273円347円273円237円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/captcha.jpg" "b/31-345円233円275円345円256円266円351円243円237円345円223円201円345円256円211円345円205円250円346円212円275円346円240円267円346円243円200円351円252円214円344円277円241円346円201円257円347円263円273円347円273円237円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/captcha.jpg" new file mode 100644 index 0000000..cf8c53e Binary files /dev/null and "b/31-345円233円275円345円256円266円351円243円237円345円223円201円345円256円211円345円205円250円346円212円275円346円240円267円346円243円200円351円252円214円344円277円241円346円201円257円347円263円273円347円273円237円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/captcha.jpg" differ diff --git "a/31-345円233円275円345円256円266円351円243円237円345円223円201円345円256円211円345円205円250円346円212円275円346円240円267円346円243円200円351円252円214円344円277円241円346円201円257円347円263円273円347円273円237円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/obj.png" "b/31-345円233円275円345円256円266円351円243円237円345円223円201円345円256円211円345円205円250円346円212円275円346円240円267円346円243円200円351円252円214円344円277円241円346円201円257円347円263円273円347円273円237円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/obj.png" new file mode 100644 index 0000000..7d16f30 Binary files /dev/null and "b/31-345円233円275円345円256円266円351円243円237円345円223円201円345円256円211円345円205円250円346円212円275円346円240円267円346円243円200円351円252円214円344円277円241円346円201円257円347円263円273円347円273円237円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/obj.png" differ diff --git "a/31-345円233円275円345円256円266円351円243円237円345円223円201円345円256円211円345円205円250円346円212円275円346円240円267円346円243円200円351円252円214円344円277円241円346円201円257円347円263円273円347円273円237円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/orange.jpg" "b/31-345円233円275円345円256円266円351円243円237円345円223円201円345円256円211円345円205円250円346円212円275円346円240円267円346円243円200円351円252円214円344円277円241円346円201円257円347円263円273円347円273円237円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/orange.jpg" new file mode 100644 index 0000000..214b273 Binary files /dev/null and "b/31-345円233円275円345円256円266円351円243円237円345円223円201円345円256円211円345円205円250円346円212円275円346円240円267円346円243円200円351円252円214円344円277円241円346円201円257円347円263円273円347円273円237円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/orange.jpg" differ diff --git "a/31-345円233円275円345円256円266円351円243円237円345円223円201円345円256円211円345円205円250円346円212円275円346円240円267円346円243円200円351円252円214円344円277円241円346円201円257円347円263円273円347円273円237円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/pro_img.jpg" "b/31-345円233円275円345円256円266円351円243円237円345円223円201円345円256円211円345円205円250円346円212円275円346円240円267円346円243円200円351円252円214円344円277円241円346円201円257円347円263円273円347円273円237円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/pro_img.jpg" new file mode 100644 index 0000000..ba3e01f Binary files /dev/null and "b/31-345円233円275円345円256円266円351円243円237円345円223円201円345円256円211円345円205円250円346円212円275円346円240円267円346円243円200円351円252円214円344円277円241円346円201円257円347円263円273円347円273円237円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/pro_img.jpg" differ diff --git "a/31-345円233円275円345円256円266円351円243円237円345円223円201円345円256円211円345円205円250円346円212円275円346円240円267円346円243円200円351円252円214円344円277円241円346円201円257円347円263円273円347円273円237円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/shipin.py" "b/31-345円233円275円345円256円266円351円243円237円345円223円201円345円256円211円345円205円250円346円212円275円346円240円267円346円243円200円351円252円214円344円277円241円346円201円257円347円263円273円347円273円237円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/shipin.py" new file mode 100644 index 0000000..da1df0a --- /dev/null +++ "b/31-345円233円275円345円256円266円351円243円237円345円223円201円345円256円211円345円205円250円346円212円275円346円240円267円346円243円200円351円252円214円344円277円241円346円201円257円347円263円273円347円273円237円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/shipin.py" @@ -0,0 +1,191 @@ +import execjs +import os +import time +import requests +import cv2 +from airtest import aircv + + +def getDistanceX(orange): + im_search = aircv.imread('obj.png') + im_source = aircv.imread(orange) + result = aircv.find_template(im_source, im_search) + return result + + +def pic_download(url, type='captcha'): + """ + 图片下载 + :param url: + :param type: + :return: + """ + img_path = os.path.abspath('...') + '\\' + '{}.jpg'.format(type) + print(img_path) + img_data = session.get(url).content + with open(img_path, 'wb') as f: + f.write(img_data) + return img_path + + +def process_img(wait_img_path, pro_img_path): + """ + 图片处理 + :param img1: 处理后图片 + :param img2: 待处理图片 + :return: + """ + # 读取图片 + target = cv2.imread(wait_img_path) + # 图片转化为灰度图 + target = cv2.cvtColor(target, cv2.COLOR_BGR2GRAY) + target = abs(255 - target) + cv2.imwrite(pro_img_path, target) + + +def cut_slider(img_path, cut_img_path): + """ + 滑块切割 + :return: + """ + # 读取要被切割的图片 + img = cv2.imread(img_path) + # 要被切割的开始的像素的高度值 + beH = 150 + # 要被切割的结束的像素的高度值 + hEnd = 300 + # 要被切割的开始的像素的宽度值 + beW = 3 + # 要被切割的结束的像素的宽度值 + wLen = 48 + # 对图片进行切割 + dstImg = img[beH:hEnd, beW:wLen] + cv2.imwrite(cut_img_path, dstImg) + + +def cut_picture(img_path, cut_img_path, *args): + """ + 滑块切割 + :return: + """ + # 读取要被切割的图片 + img = cv2.imread(img_path) + # 要被切割的开始的像素的高度值 + beH = args[0] + # 要被切割的结束的像素的高度值 + hEnd = args[1] + # 要被切割的开始的像素的宽度值 + beW = args[2] + # 要被切割的结束的像素的宽度值 + wLen = args[3] + # 对图片进行切割 + dstImg = img[beH:hEnd, beW:wLen] + cv2.imwrite(cut_img_path, dstImg) + + +def get_distance(captcha_path): + """ + 获取缺口距离 + :return: + """ + # # 计算拼图还原距离 + target = cv2.imread(captcha_path, 0) + # 获取图像的尺寸 + height = target.shape[0] + # print(height) # 150 + width = target.shape[1] + # print(width) # 240 + + # 宽 遍历 + for x in range(width): # X 轴 + for y in range(120): # Y 轴 + # print(target[x, y]) + if target[y, x] != 255: + # j就是对应的Y轴的坐标, X轴是不变的! + # print(j) + return x + 6 + + +# 数值运算:加减乘除 +def subtractPic(src11, src33): + src1 = cv2.imread(src11) + src3 = cv2.imread(src33) + src = cv2.subtract(src1, src3) # 减 + # cv2.imshow("相减", src) + # 取非 + src = cv2.bitwise_not(src) + # 二值化 更加清晰 + cv2.imwrite('subtract.jpg', src) + + +################################################# +session = requests.Session() + + +def get_js_function(js_path, func_name, func_args): + ''' + 获取指定目录下的js代码, 并且指定js代码中函数的名字以及函数的参数。 + :param js_path: js代码的位置 + :param func_name: js代码中函数的名字 + :param func_args: js代码中函数的参数 + :return: 返回调用js函数的结果 + ''' + + with open(js_path, encoding='utf-8') as fp: + js = fp.read() + ctx = execjs.compile(js) + return ctx.call(func_name, func_args) + + +headers = { + 'Accept': '*/*', + 'Accept-Encoding': 'gzip, deflate', + 'Accept-Language': 'zh-CN,zh;q=0.9', + 'Cache-Control': 'no-cache', + 'Connection': 'keep-alive', + 'Cookie': 'authId=ST-2308216-XhvXsSKtdxh4C5hdXwCd-ssolimsgetteccom', + 'Host': 'sample.nifdc.org.cn', + 'Pragma': 'no-cache', + 'Referer': 'http://sample.nifdc.org.cn/index.php?m=Admin&c=TaskList&a=addpaperysample', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36' +} + + +def crackSlide(): + url = 'http://sample.nifdc.org.cn/Admin/Captcha/getcaptcha?t=0.9832337044604367' + pic_download(url) + process_img('captcha.jpg', 'pro_img.jpg') + cut_picture('captcha.jpg', 'src11_captcha.jpg', 0, 150, 0, 240) + cut_picture('captcha.jpg', 'src33_captcha.jpg', 300, 450, 0, 240) + subtractPic('src33_captcha.jpg', 'src11_captcha.jpg') + result = getDistanceX('subtract.jpg') + if result: + print(result) + x = result['result'][0] - 24 + # x = get_distance('subtract.jpg') + PARAMS_URL = get_js_function('666.js', 'parmsData', x) + # print(PARAMS_URL) + BASE_URL = 'http://sample.nifdc.org.cn' + response = session.get(BASE_URL + PARAMS_URL) + print(response.text) + return response.json() + + +def main(): + print('开始测试...') + print('=' * 100) + num = 1 + success = 0 + test_num = 20 + while num <= test_num: + x = crackSlide() + print(x) + if 'success' in str(x): + success += 1 + # time.sleep(.5) + num += 1 + print('最后测试结果>> %.2f%%' % (success / test_num * 100)) + + +if __name__ == '__main__': + main() diff --git "a/31-345円233円275円345円256円266円351円243円237円345円223円201円345円256円211円345円205円250円346円212円275円346円240円267円346円243円200円351円252円214円344円277円241円346円201円257円347円263円273円347円273円237円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/src11_captcha.jpg" "b/31-345円233円275円345円256円266円351円243円237円345円223円201円345円256円211円345円205円250円346円212円275円346円240円267円346円243円200円351円252円214円344円277円241円346円201円257円347円263円273円347円273円237円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/src11_captcha.jpg" new file mode 100644 index 0000000..6488442 Binary files /dev/null and "b/31-345円233円275円345円256円266円351円243円237円345円223円201円345円256円211円345円205円250円346円212円275円346円240円267円346円243円200円351円252円214円344円277円241円346円201円257円347円263円273円347円273円237円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/src11_captcha.jpg" differ diff --git "a/31-345円233円275円345円256円266円351円243円237円345円223円201円345円256円211円345円205円250円346円212円275円346円240円267円346円243円200円351円252円214円344円277円241円346円201円257円347円263円273円347円273円237円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/src33_captcha.jpg" "b/31-345円233円275円345円256円266円351円243円237円345円223円201円345円256円211円345円205円250円346円212円275円346円240円267円346円243円200円351円252円214円344円277円241円346円201円257円347円263円273円347円273円237円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/src33_captcha.jpg" new file mode 100644 index 0000000..4155008 Binary files /dev/null and "b/31-345円233円275円345円256円266円351円243円237円345円223円201円345円256円211円345円205円250円346円212円275円346円240円267円346円243円200円351円252円214円344円277円241円346円201円257円347円263円273円347円273円237円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/src33_captcha.jpg" differ diff --git "a/31-345円233円275円345円256円266円351円243円237円345円223円201円345円256円211円345円205円250円346円212円275円346円240円267円346円243円200円351円252円214円344円277円241円346円201円257円347円263円273円347円273円237円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/subtract.jpg" "b/31-345円233円275円345円256円266円351円243円237円345円223円201円345円256円211円345円205円250円346円212円275円346円240円267円346円243円200円351円252円214円344円277円241円346円201円257円347円263円273円347円273円237円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/subtract.jpg" new file mode 100644 index 0000000..0c7ae23 Binary files /dev/null and "b/31-345円233円275円345円256円266円351円243円237円345円223円201円345円256円211円345円205円250円346円212円275円346円240円267円346円243円200円351円252円214円344円277円241円346円201円257円347円263円273円347円273円237円346円273円221円345円212円250円351円252円214円350円257円201円347円240円201円/subtract.jpg" differ diff --git "a/32-347円210円261円345円255円246円344円271円240円m3u8350円247円206円351円242円221円aes347円240円264円350円247円243円/tmoockey.py" "b/32-347円210円261円345円255円246円344円271円240円m3u8350円247円206円351円242円221円aes347円240円264円350円247円243円/tmoockey.py" new file mode 100644 index 0000000..8582a41 --- /dev/null +++ "b/32-347円210円261円345円255円246円344円271円240円m3u8350円247円206円351円242円221円aes347円240円264円350円247円243円/tmoockey.py" @@ -0,0 +1,37 @@ +import requests +from Crypto.Cipher import AES + + +HEADERS = { + 'Origin': 'http://tts.tmooc.cn', + 'Referer': 'http://tts.tmooc.cn/video/showVideo?menuId=582783&version=CGB_A_V02', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36', +} + + +def download_key(url_key): + + response_key = requests.get(url_key, headers=HEADERS).content # 下载key + return response_key + + +def download_ts(url_ts): + + response_ts = requests.get(url_ts, headers=HEADERS).content # 下载key + return response_ts + +def aes_key_and_ts(key, ts): + + data = AES.new(key, AES.MODE_CBC, ts[0:16]).decrypt(ts[16:]) + return data + +def save_mp4(file_name, data): + + with open(file_name+'.mp4', 'ab') as fp: + fp.write(data) + +if __name__ == '__main__': + url_key = 'http://c.it211.com.cn/cgb19020226pm/static.key' + key = download_key(url_key) + for page in range(0, 199): + url_ts = f'http://c.it211.com.cn/cgb19020226pm/cgb19020226pm-{page}.ts' diff --git "a/32-347円210円261円345円255円246円344円271円240円m3u8350円247円206円351円242円221円aes347円240円264円350円247円243円/tmoocm3u8.py" "b/32-347円210円261円345円255円246円344円271円240円m3u8350円247円206円351円242円221円aes347円240円264円350円247円243円/tmoocm3u8.py" new file mode 100644 index 0000000..7bd47e1 --- /dev/null +++ "b/32-347円210円261円345円255円246円344円271円240円m3u8350円247円206円351円242円221円aes347円240円264円350円247円243円/tmoocm3u8.py" @@ -0,0 +1,70 @@ +import re, os +import requests +from parsel import Selector +from tmoockey import download_key, download_ts, aes_key_and_ts, save_mp4 + + +headers = { + 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', + 'Accept-Encoding': 'gzip, deflate', + 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8', + 'Cache-Control': 'max-age=0', + 'Connection': 'keep-alive', + 'Cookie': 'xxxxxxxxxxxxxxxxxxx', + 'Host': 'tts.tmooc.cn', + 'Referer': 'http://tts.tmooc.cn/studentCenter/toMyttsPage?versionCode=CGB_A_V02', + 'Upgrade-Insecure-Requests': '1', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36', +} + +headers2 = { + 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', + 'Accept-Encoding': 'gzip, deflate', + 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8', + 'Cache-Control': 'max-age=0', + 'Connection': 'keep-alive', + 'Cookie': 'xxxxxxxxxxxx', + 'Host': 'tts.tmooc.cn', + 'Upgrade-Insecure-Requests': '1', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36', + +} + +headers3 = { + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36', +} + +def get_menuId(url): + + response = requests.get(url, headers=headers) + selectors = Selector(text=response.text).xpath('//div[@class="course-menu"]/ul/li[@class="opened"]') + for selector in selectors: + video_name = selector.xpath('./p/text()').get().strip() + video_href = selector.xpath('./ul/li[@class="sp"]/a/@href').get() + video_name = ''.join(video_name.split()) + video_href = video_href + yield video_name, video_href + + +def get_m3u8(m3u8_url): + # m3u8_url = 'https://hls.videocc.net/01b768ec8c/0/01b768ec8c4739f79cec9964836b5800_2.m3u8?pid=1580626301758X1133587&device=desktop' + # m3u8_url = 'https://hls.videocc.net/01b768ec8c/e/01b768ec8c3d4e068ad411ccc0b9342e_2.m3u8?pid=1580632138310X1619848&device=desktop' + response_m3u8 = requests.get(m3u8_url, headers=headers3) + print(response_m3u8.text) + # 提取key的url + url_key = re.search('URI="(.*?)"', response_m3u8.text).group(1) + #'http://c.it211.com.cn/cgb19020226pm/static.key' + key = download_key(url_key) + url_ts = re.findall(r'https://.*?\.ts\?pid=.*?&device=desktop', response_m3u8.text) + print(url_ts) + for ts_url in url_ts: + print(ts_url) + ts = download_ts(ts_url) + data = aes_key_and_ts(key, ts) + video_path = '第6讲 【作】写人篇·我的好朋友' + save_mp4(video_path, data) + + +if __name__ == '__main__': + m3u8_url = 'https://hls.videocc.net/01b768ec8c/7/01b768ec8c751c7b09232998c15b6837_2.m3u8?pid=1580646548553X1389651&device=desktop' + get_m3u8(m3u8_url) diff --git a/README.md b/README.md index 74e11f4..b59ff80 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,12 @@ # JSpider +# 此项目暂停维护更新!! + +## 联系&交流 + +- 微信:scrapingdance +- 邮箱:scrapy@qq.com + ## 关于 JSpider 的含义是 JavaScript 与 Spider,JSpider每周会更新至少一个网站的JS解密方式。并且把解密的JS文件分享出来,该JS文件可以直接使用Python模块pyexecjs调用执行。分享的文件包括JS源码和Python程序。 @@ -78,10 +85,6 @@ JSpider 的含义是 JavaScript 与 Spider,JSpider每周会更新至少一个 做非对称加密密钥对一般有RSA、DSA,都可以用作签名验证,一般如果只做签名操作,生成DSA即可,速度会快很多,效率也很高。DSA尽管很少用,但是也一样具有很高可靠性,通过公私钥签名验证内容。保证数据在传输中不被修改。 -## 联系 - -- scrapy@qq.com - ## 注意 - 本项目仅用于学习交流,切勿用于任何非法用途。