about summary refs log tree commit diff
path: root/users/wpcarro/scratch/cryptopals/set1/c2.py
blob: badd60503d904a66d1ddf234cd78e85dd1e6a384 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def fixed_xor(x, y, decode_hex=True, encode_hex=True):
    if decode_hex:
        x = bytearray.fromhex(x)
        y = bytearray.fromhex(y)

    result = bytearray(len(x))

    for i in range(len(x)):
        result[i] = x[i] ^ y[i]

    return result.hex() if encode_hex else result

run_tests = False
if run_tests:
    actual = fixed_xor("1c0111001f010100061a024b53535009181c", "686974207468652062756c6c277320657965")
    expect = "746865206b696420646f6e277420706c6179"

    print(actual)
    assert actual == expect
    print("Success!")