Created
August 3, 2018 08:06
-
-
Save hondajojo/c95fb02519a5592b15a1aacf1c543804 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# coding:utf8 | |
import js2py | |
def encrypted(password): | |
js_func1 = """ | |
function i(t, e, n, i, a, o) { | |
var r, s, c, l, m, d, u, p, h, f, g, b, v, w, y = new Array(16843776, 0, 65536, 16843780, 16842756, 66564, 4, 65536, 1024, 16843776, 16843780, 1024, 16778244, 16842756, 16777216, 4, 1028, 16778240, 16778240, 66560, 66560, 16842752, 16842752, 16778244, 65540, 16777220, 16777220, 65540, 0, 1028, 66564, 16777216, 65536, 16843780, 4, 16842752, 16843776, 16777216, 16777216, 1024, 16842756, 65536, 66560, 16777220, 1024, 4, 16778244, 66564, 16843780, 65540, 16842752, 16778244, 16777220, 1028, 66564, 16843776, 1028, 16778240, 16778240, 0, 65540, 66560, 0, 16842756), | |
x = new Array(-2146402272, -2147450880, 32768, 1081376, 1048576, 32, -2146435040, -2147450848, -2147483616, -2146402272, -2146402304, -2147483648, -2147450880, 1048576, 32, -2146435040, 1081344, 1048608, -2147450848, 0, -2147483648, 32768, 1081376, -2146435072, 1048608, -2147483616, 0, 1081344, 32800, -2146402304, -2146435072, 32800, 0, 1081376, -2146435040, 1048576, -2147450848, -2146435072, -2146402304, 32768, -2146435072, -2147450880, 32, -2146402272, 1081376, 32, 32768, -2147483648, 32800, -2146402304, 1048576, -2147483616, 1048608, -2147450848, -2147483616, 1048608, 1081344, 0, -2147450880, 32800, -2147483648, -2146435040, -2146402272, 1081344), | |
k = new Array(520, 134349312, 0, 134348808, 134218240, 0, 131592, 134218240, 131080, 134217736, 134217736, 131072, 134349320, 131080, 134348800, 520, 134217728, 8, 134349312, 512, 131584, 134348800, 134348808, 131592, 134218248, 131584, 131072, 134218248, 8, 134349320, 512, 134217728, 134349312, 134217728, 131080, 520, 131072, 134349312, 134218240, 0, 512, 131080, 134349320, 134218240, 134217736, 512, 0, 134348808, 134218248, 131072, 134217728, 134349320, 8, 131592, 131584, 134217736, 134348800, 134218248, 520, 134348800, 131592, 8, 134348808, 131584), | |
S = new Array(8396801, 8321, 8321, 128, 8396928, 8388737, 8388609, 8193, 0, 8396800, 8396800, 8396929, 129, 0, 8388736, 8388609, 1, 8192, 8388608, 8396801, 128, 8388608, 8193, 8320, 8388737, 1, 8320, 8388736, 8192, 8396928, 8396929, 129, 8388736, 8388609, 8396800, 8396929, 129, 0, 0, 8396800, 8320, 8388736, 8388737, 1, 8396801, 8321, 8321, 128, 8396929, 129, 1, 8192, 8388609, 8193, 8396928, 8388737, 8193, 8320, 8388608, 8396801, 128, 8388608, 8192, 8396928), | |
C = new Array(256, 34078976, 34078720, 1107296512, 524288, 256, 1073741824, 34078720, 1074266368, 524288, 33554688, 1074266368, 1107296512, 1107820544, 524544, 1073741824, 33554432, 1074266112, 1074266112, 0, 1073742080, 1107820800, 1107820800, 33554688, 1107820544, 1073742080, 0, 1107296256, 34078976, 33554432, 1107296256, 524544, 524288, 1107296512, 256, 33554432, 1073741824, 34078720, 1107296512, 1074266368, 33554688, 1073741824, 1107820544, 34078976, 1074266368, 256, 33554432, 1107820544, 1107820800, 524544, 1107296256, 1107820800, 34078720, 0, 1074266112, 1107296256, 524544, 33554688, 1073742080, 524288, 0, 1074266112, 34078976, 1073742080), | |
T = new Array(536870928, 541065216, 16384, 541081616, 541065216, 16, 541081616, 4194304, 536887296, 4210704, 4194304, 536870928, 4194320, 536887296, 536870912, 16400, 0, 4194320, 536887312, 16384, 4210688, 536887312, 16, 541065232, 541065232, 0, 4210704, 541081600, 16400, 4210688, 541081600, 536870912, 536887296, 16, 541065232, 4210688, 541081616, 4194304, 16400, 536870928, 4194304, 536887296, 536870912, 16400, 536870928, 541081616, 4210688, 541065216, 4210704, 541081600, 0, 541065232, 16, 16384, 541065216, 4210704, 16384, 4194320, 536887312, 0, 541081600, 536870912, 4194320, 536887312), | |
O = new Array(2097152, 69206018, 67110914, 0, 2048, 67110914, 2099202, 69208064, 69208066, 2097152, 0, 67108866, 2, 67108864, 69206018, 2050, 67110912, 2099202, 2097154, 67110912, 67108866, 69206016, 69208064, 2097154, 69206016, 2048, 2050, 69208066, 2099200, 2, 67108864, 2099200, 67108864, 2099200, 2097152, 67110914, 67110914, 69206018, 69206018, 2, 2097154, 67108864, 67110912, 2097152, 69208064, 2050, 2099202, 69208064, 2050, 67108866, 69208066, 69206016, 2099200, 0, 2, 69208066, 0, 2099202, 69206016, 2048, 67108866, 67110912, 2048, 2097154), | |
_ = new Array(268439616, 4096, 262144, 268701760, 268435456, 268439616, 64, 268435456, 262208, 268697600, 268701760, 266240, 268701696, 266304, 4096, 64, 268697600, 268435520, 268439552, 4160, 266240, 262208, 268697664, 268701696, 4160, 0, 0, 268697664, 268435520, 268439552, 266304, 262144, 266304, 262144, 268701696, 4096, 64, 268697664, 4096, 266304, 268439552, 64, 268435520, 268697600, 268697664, 268435456, 262144, 268439616, 0, 268701760, 262208, 268435520, 268697600, 268439552, 268439616, 0, 268701760, 266240, 266240, 4160, 4160, 262208, 268435456, 268701696), | |
I = function (t) { | |
for (var e, n, i, a = new Array(0, 4, 536870912, 536870916, 65536, 65540, 536936448, 536936452, 512, 516, 536871424, 536871428, 66048, 66052, 536936960, 536936964), o = new Array(0, 1, 1048576, 1048577, 67108864, 67108865, 68157440, 68157441, 256, 257, 1048832, 1048833, 67109120, 67109121, 68157696, 68157697), r = new Array(0, 8, 2048, 2056, 16777216, 16777224, 16779264, 16779272, 0, 8, 2048, 2056, 16777216, 16777224, 16779264, 16779272), s = new Array(0, 2097152, 134217728, 136314880, 8192, 2105344, 134225920, 136323072, 131072, 2228224, 134348800, 136445952, 139264, 2236416, 134356992, 136454144), c = new Array(0, 262144, 16, 262160, 0, 262144, 16, 262160, 4096, 266240, 4112, 266256, 4096, 266240, 4112, 266256), l = new Array(0, 1024, 32, 1056, 0, 1024, 32, 1056, 33554432, 33555456, 33554464, 33555488, 33554432, 33555456, 33554464, 33555488), m = new Array(0, 268435456, 524288, 268959744, 2, 268435458, 524290, 268959746, 0, 268435456, 524288, 268959744, 2, 268435458, 524290, 268959746), d = new Array(0, 65536, 2048, 67584, 536870912, 536936448, 536872960, 536938496, 131072, 196608, 133120, 198656, 537001984, 537067520, 537004032, 537069568), u = new Array(0, 262144, 0, 262144, 2, 262146, 2, 262146, 33554432, 33816576, 33554432, 33816576, 33554434, 33816578, 33554434, 33816578), p = new Array(0, 268435456, 8, 268435464, 0, 268435456, 8, 268435464, 1024, 268436480, 1032, 268436488, 1024, 268436480, 1032, 268436488), h = new Array(0, 32, 0, 32, 1048576, 1048608, 1048576, 1048608, 8192, 8224, 8192, 8224, 1056768, 1056800, 1056768, 1056800), f = new Array(0, 16777216, 512, 16777728, 2097152, 18874368, 2097664, 18874880, 67108864, 83886080, 67109376, 83886592, 69206016, 85983232, 69206528, 85983744), g = new Array(0, 4096, 134217728, 134221824, 524288, 528384, 134742016, 134746112, 16, 4112, 134217744, 134221840, 524304, 528400, 134742032, 134746128), b = new Array(0, 4, 256, 260, 0, 4, 256, 260, 1, 5, 257, 261, 1, 5, 257, 261), v = t.length > 8 ? 3 : 1, w = new Array(32 * v), y = new Array(0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0), x = 0, k = 0, S = 0; S < v; S++) { | |
var C = t.charCodeAt(x++) << 24 | t.charCodeAt(x++) << 16 | t.charCodeAt(x++) << 8 | t.charCodeAt(x++), | |
T = t.charCodeAt(x++) << 24 | t.charCodeAt(x++) << 16 | t.charCodeAt(x++) << 8 | t.charCodeAt(x++); | |
C ^= (i = 252645135 & (C >>> 4 ^ T)) << 4, | |
C ^= i = 65535 & ((T ^= i) >>> -16 ^ C), | |
C ^= (i = 858993459 & (C >>> 2 ^ (T ^= i << -16))) << 2, | |
C ^= i = 65535 & ((T ^= i) >>> -16 ^ C), | |
C ^= (i = 1431655765 & (C >>> 1 ^ (T ^= i << -16))) << 1, | |
C ^= i = 16711935 & ((T ^= i) >>> 8 ^ C), | |
i = (C ^= (i = 1431655765 & (C >>> 1 ^ (T ^= i << 8))) << 1) << 8 | (T ^= i) >>> 20 & 240, | |
C = T << 24 | T << 8 & 16711680 | T >>> 8 & 65280 | T >>> 24 & 240, | |
T = i; | |
for (var O = 0; O < y.length; O++) | |
y[O] ? (C = C << 2 | C >>> 26, | |
T = T << 2 | T >>> 26) : (C = C << 1 | C >>> 27, | |
T = T << 1 | T >>> 27), | |
T &= -15, | |
e = a[(C &= -15) >>> 28] | o[C >>> 24 & 15] | r[C >>> 20 & 15] | s[C >>> 16 & 15] | c[C >>> 12 & 15] | l[C >>> 8 & 15] | m[C >>> 4 & 15], | |
n = d[T >>> 28] | u[T >>> 24 & 15] | p[T >>> 20 & 15] | h[T >>> 16 & 15] | f[T >>> 12 & 15] | g[T >>> 8 & 15] | b[T >>> 4 & 15], | |
i = 65535 & (n >>> 16 ^ e), | |
w[k++] = e ^ i, | |
w[k++] = n ^ i << 16 | |
} | |
return w | |
}(t), | |
E = 0, | |
A = e.length, | |
P = 0, | |
R = 32 == I.length ? 3 : 9; | |
p = 3 == R ? n ? new Array(0, 32, 2) : new Array(30, -2, -2) : n ? new Array(0, 32, 2, 62, 30, -2, 64, 96, 2) : new Array(94, 62, -2, 32, 64, 2, 30, -2, -2), | |
2 == o ? e += " " : 1 == o ? (c = 8 - A % 8, | |
e += String.fromCharCode(c, c, c, c, c, c, c, c), | |
8 == c && (A += 8)) : o || (e += "\0\0\0\0\0\0\0\0"); | |
var q = "", | |
D = ""; | |
for (1 == i && (h = a.charCodeAt(E++) << 24 | a.charCodeAt(E++) << 16 | a.charCodeAt(E++) << 8 | a.charCodeAt(E++), | |
g = a.charCodeAt(E++) << 24 | a.charCodeAt(E++) << 16 | a.charCodeAt(E++) << 8 | a.charCodeAt(E++), | |
E = 0); E < A;) { | |
for (d = e.charCodeAt(E++) << 24 | e.charCodeAt(E++) << 16 | e.charCodeAt(E++) << 8 | e.charCodeAt(E++), | |
u = e.charCodeAt(E++) << 24 | e.charCodeAt(E++) << 16 | e.charCodeAt(E++) << 8 | e.charCodeAt(E++), | |
1 == i && (n ? (d ^= h, | |
u ^= g) : (f = h, | |
b = g, | |
h = d, | |
g = u)), | |
d ^= (c = 252645135 & (d >>> 4 ^ u)) << 4, | |
d ^= (c = 65535 & (d >>> 16 ^ (u ^= c))) << 16, | |
d ^= c = 858993459 & ((u ^= c) >>> 2 ^ d), | |
d ^= c = 16711935 & ((u ^= c << 2) >>> 8 ^ d), | |
d = (d ^= (c = 1431655765 & (d >>> 1 ^ (u ^= c << 8))) << 1) << 1 | d >>> 31, | |
u = (u ^= c) << 1 | u >>> 31, | |
s = 0; s < R; s += 3) { | |
for (v = p[s + 1], | |
w = p[s + 2], | |
r = p[s]; r != v; r += w) | |
l = u ^ I[r], | |
m = (u >>> 4 | u << 28) ^ I[r + 1], | |
c = d, | |
d = u, | |
u = c ^ (x[l >>> 24 & 63] | S[l >>> 16 & 63] | T[l >>> 8 & 63] | _[63 & l] | y[m >>> 24 & 63] | k[m >>> 16 & 63] | C[m >>> 8 & 63] | O[63 & m]); | |
c = d, | |
d = u, | |
u = c | |
} | |
u = u >>> 1 | u << 31, | |
u ^= c = 1431655765 & ((d = d >>> 1 | d << 31) >>> 1 ^ u), | |
u ^= (c = 16711935 & (u >>> 8 ^ (d ^= c << 1))) << 8, | |
u ^= (c = 858993459 & (u >>> 2 ^ (d ^= c))) << 2, | |
u ^= c = 65535 & ((d ^= c) >>> 16 ^ u), | |
u ^= c = 252645135 & ((d ^= c << 16) >>> 4 ^ u), | |
d ^= c << 4, | |
1 == i && (n ? (h = d, | |
g = u) : (d ^= f, | |
u ^= b)), | |
D += String.fromCharCode(d >>> 24, d >>> 16 & 255, d >>> 8 & 255, 255 & d, u >>> 24, u >>> 16 & 255, u >>> 8 & 255, 255 & u), | |
512 == (P += 8) && (q += D, | |
D = "", | |
P = 0) | |
} | |
return q + D | |
} | |
""" | |
js_func2 = """ | |
function b(t) { | |
for (var e = "", n = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"), i = 0; i < t.length; i++) | |
e += n[t.charCodeAt(i) >> 4] + n[15 & t.charCodeAt(i)]; | |
return e | |
} | |
""" | |
def1 = js2py.eval_js(js_func1) | |
t = def1("8D54E5D0", password, 1, 1, "8D54E5D0", 1) | |
def2 = js2py.eval_js(js_func2) | |
encrypted_password = def2(t) | |
return encrypted_password | |
if __name__ == '__main__': | |
print(encrypted("000000")) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment