def main(): enc = Encryptor() output = enc.encrypt('A' * 1024) bytes = str2bytes(output) # print bytes keysizes = findKeysize(bytes) distance, keysize = keysizes[0] print keysize input = 'A' * (keysize - 1) chs = [] print 'bytes' while True: block = len(chs) / keysize print len(chs), block, 'input:', input target = enc.encrypt(input)[block * keysize:(block + 1) * keysize] # print len(target) baseInput = input + ''.join(chs) for byte in range(256): ch = chr(byte) testInput = baseInput + ch test = enc.encrypt(testInput)[block * keysize:(block + 1) * keysize] if test == target: print ch, byte chs.append(ch) break else: print 'no byte found' break if len(input) == 0: input = 'A' * (keysize - 1) else: input = input[1:] print ''.join(chs)
#!/usr/bin/env python from util import pkcs7, str2bytes input = 'YELLOW SUBMARINE' padded = pkcs7(input, 20) print padded print str2bytes(padded)