python #Embedded file name: rev300.py __g = globals() __y = (lambda f: (lambda x: x(x))(lambda y: f(lambda : y(y)()))) string = (__import__('string', __g, __g)) table = (string.printable.strip()) """ setbit = (lambda p, pos, value: (lambda __l: [ [ [ (lambda __target, __slice, __value: [ (lambda __target, __slice, __value: [ __l['p'] for __target[__slice] in [(lambda __old: (lambda __ret: (__old | __value if __ret is NotImplemented else __ret))(getattr(__old, '__ior__', lambda other: NotImplemented)(__value)))(__target[__slice])] ][0])(__l['p'], __l['cpos'], __l['value'] << __l['bpos']) for __target[__slice] in [(lambda __old: (lambda __ret: (__old & __value if __ret is NotImplemented else __ret))(getattr(__old, '__iand__', lambda other: NotImplemented)(__value)))(__target[__slice])] ][0])(__l['p'], __l['cpos'], ~(1 << __l['bpos'])) for __l['bpos'] in [__l['pos'] % 8] ][0] for __l['cpos'] in [__l['pos'] / 8] ][0] for __l['p'], __l['pos'], __l['value'] in [(p, pos, value)] ][0])({})) setbit.__name__ = 'setbit' getbit = (lambda p, pos: (lambda __l: [ [ [ __l['p'][__l['cpos']] >> __l['bpos'] & 1 for __l['bpos'] in [__l['pos'] % 8] ][0] for __l['cpos'] in [__l['pos'] / 8] ][0] for __l['p'], __l['pos'] in [(p, pos)] ][0])({})) getbit.__name__ = 'getbit' encode = (lambda data, buf: (lambda __l: [ [ (lambda __items, __after, __sentinel: __y(lambda __this: lambda : (lambda __i: ([ [ __this() for __l['data'][__l['i']] in [table.index(__l['data'][__l['i']]) + 1] ][0] for __l['i'] in [__i] ][0] if __i is not __sentinel else __after()))(next(__items, __sentinel)))())(iter(xrange(__l['_len'])), lambda : (lambda __items, __after, __sentinel: __y(lambda __this: lambda : (lambda __i: ([ [ [ __this() for __l['buf'] in [setbit(__l['buf'], __l['i'], getbit(__l['data'], __l['j']))] ][0] for __l['j'] in [__l['i'] / 6 * 8 + __l['i'] % 6] ][0] for __l['i'] in [__i] ][0] if __i is not __sentinel else __after()))(next(__items, __sentinel)))())(iter(xrange(__l['_len'] * 6)), lambda : __l['buf'], []), []) for __l['_len'] in [len(__l['data'])] ][0] for __l['data'], __l['buf'] in [(data, buf)] ][0])({})) encode.__name__ = 'encode' """ def setbit(p,pos,value): bpos = pos % 8 cpos = pos / 8 s = p s[cpos] = p[cpos] & (~(1 << bpos)) s[cpos] = p[cpos] | (value << bpos) return s def getbit(p,pos): bpos = pos % 8 cpos = pos / 8 return p[cpos] >> bpos & 1 def encode(data, buf): indexdata = [] for i in xrange(len(data)): indexdata.append(table.index(data[i]) + 1) res = buf for i in xrange(len(data)*6): j = i / 6 * 8 + i % 6 setbit(res, i, getbit(indexdata, j)) return res def encrypt(): fin = open('key.txt', 'r') s = fin.read().strip() fin.close() ss = ([]) sss = ([]) __items = iter(s) __after = (lambda : [ [ (lambda __items, __after, __sentinel: __y(lambda __this: lambda : (lambda __i: ([ (lambda __value: [ __this() for __g['sssss'] in [(lambda __ret: (__g['sssss'] + __value if __ret is NotImplemented else __ret))(getattr(__g['sssss'], '__iadd__', lambda other: NotImplemented)(__value))] ][0])(chr(c)) for __g['c'] in [__i] ][0] if __i is not __sentinel else __after()))(next(__items, __sentinel)))())(iter(ssss), lambda : [ (fout.write(sssss), (fout.close(), None)[1])[1] for __g['fout'] in [open('key1.enc', 'wb+')] ][0], []) for __g['sssss'] in [''] ][0] for __g['ssss'] in [encode(ss, sss)] ][0]) __sentinel = ([]) __y(lambda __this: lambda : (lambda __i: ([ (ss.append(c), (sss.append(0), __this())[1])[1] for __g['c'] in [__i] ][0] if __i is not __sentinel else __after()))(next(__items, __sentinel)))() def decrypt(): fin = open('key.enc','rb') cipher = fin.read() plain = '' def decode3b(s): a = s >> 16 b = (s >> 8) & 0xFF c = s & 0xff sa = bin(a)[2:].zfill(8) sb = bin(b)[2:].zfill(8) sc = bin(c)[2:].zfill(8) return table[int(sa[2:], 2)] + table[int(sb[4:] + sa[:2], 2)] + table[int(sc[6:] + sb[:4], 2)] + table[int(sc[:6], 2)] for i in xrange(0,len(cipher),3): s = int(cipher[i:i+3].encode('hex'),16) plain += decode3b(s) print plain return ''.join(table[(table.index(c) + 63) % 64] for c in plain) if __name__ == '__main__': print decrypt() print table[table.index("d")+64] #Key:9733c070b2138e5f
|
近期评论