def crack(top_letter, en_top_letter, encrypted_hex): decoding_key = '' p_key = crack_key(en_top_letter, top_letter) bin_key = hex_to_binary(p_key) # print('key: {}'.format(hex_to_ascii(p_key))) # print('key bin: {}'.format(bin_key)) hex_clear_text = '' for i in range(0, len(encrypted_hex), 2): enc_hex = encrypted_hex[i:i + 2] hex_clear_text += binary_to_hex( inverse_bitwise_xor(bin_key, hex_to_binary(enc_hex))) return hex_clear_text, p_key
def ascii_str_to_binary(ascii_str): bin_str = '' for c in ascii_str: bin_str += hex_to_binary(ascii_letter_to_hex(c)) return bin_str
def hex_xor(hex_input, hex_xor_value): bin_input = hex_to_binary(hex_input) xor_input = hex_to_binary(hex_xor_value) return binary_to_hex(bitwise_xor(bin_input, xor_input))
def crack_key(top_letter, en_top_letter): bin_top_l = hex_to_binary(top_letter) bin_top_en = hex_to_binary(en_top_letter) bin_key = inverse_bitwise_xor(bin_top_en, bin_top_l) return binary_to_hex(bin_key)
def hex_to_ascii_letter(hex_v): return ASCII[binary_to_decimal(hex_to_binary(hex_v))]