Path: blob/master/special_endings/source/decode.py
650 views
def get_base64_diff_value(s1, s2):1base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'2res = 03for i in xrange(len(s1)):4if s1[i] != s2[i]:5return abs(base64chars.index(s1[i]) - base64chars.index(s2[i]))6return res78def solve_stego():9with open('encrypted_lines.txt', 'rb') as f:10file_lines = f.readlines()1112bin_str = ''13for line in file_lines:14steg_line = line.replace('\n', '')15norm_line = line.replace('\n', '').decode('base64').encode('base64').replace('\n', '')1617diff = get_base64_diff_value(steg_line, norm_line)18pads_num = steg_line.count('=')19if diff:20bin_str += bin(diff)[2:].zfill(pads_num * 2)21else:22bin_str += '0' * pads_num * 22324res_str = ''25for i in xrange(0, len(bin_str), 8):26res_str += chr(int(bin_str[i:i+8], 2))27print res_str2829solve_stego()303132