示例#1
0
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
示例#2
0
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
示例#3
0
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
示例#4
0
def solve(bstring):
    dec_hex = stringlib.decode_hex(bstring)
    enc_base64 = stringlib.encode_base64(dec_hex)
    return enc_base64
示例#5
0
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()
示例#6
0
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()