def solve(crypt_msg): max_score, decoder, secret = 0, None, None unhex_msg = stringlib.decode_hex(crypt_msg) for c in range(256): dec_msg = strxor.strxor_c(unhex_msg, c) score = stringlib.score(dec_msg) if score > max_score: max_score, decoder, secret = score, c, dec_msg return secret, max_score, decoder
def solve(filename): with open(filename, "r") as f: min_cnt, msg = None, None for i, line in enumerate(f): unhex_msg = stringlib.decode_hex(line.rstrip()) block_cnt = (len(unhex_msg) + 15) // 16 blocks = (unhex_msg[16*k: 16*(k + 1)] for k in range(block_cnt)) unequal_block_cnt = len(set(blocks)) if min_cnt is None or unequal_block_cnt < min_cnt: min_cnt = unequal_block_cnt msg = line.rstrip() return min_cnt, msg
def solve(filename): with open(filename, "r") as f: min_cnt, msg = None, None for i, line in enumerate(f): unhex_msg = stringlib.decode_hex(line.rstrip()) block_cnt = (len(unhex_msg) + 15) // 16 blocks = (unhex_msg[16 * k:16 * (k + 1)] for k in range(block_cnt)) unequal_block_cnt = len(set(blocks)) if min_cnt is None or unequal_block_cnt < min_cnt: min_cnt = unequal_block_cnt msg = line.rstrip() return min_cnt, msg
def solve(bstring): dec_hex = stringlib.decode_hex(bstring) enc_base64 = stringlib.encode_base64(dec_hex) return enc_base64
def solve(hex1, hex2): dec1 = stringlib.decode_hex(hex1) dec2 = stringlib.decode_hex(hex2) xored = strxor.strxor(dec1, dec2) return stringlib.encode_hex(xored).lower()