コード例 #1
0
def detect_xor(file_name):
    f = open(file_name, 'r')
    d = {}

    for line in f:
        line = line.rstrip().lstrip()
        candidate = decryptor.search_single_byte_xor_key(line)
        if candidate is None:
            continue

        freq = decryptor.analyze_char_freq(candidate)
        score = decryptor.score_char_freq(freq)
        d[score] = candidate
    
    return d[min(d)]
コード例 #2
0
 def test_score_char_freq(self):
     perfect_score = ''.join(key * int(value*100 * 10) for key, value in decryptor.english_letter_frequencies.items())
     self.assertEqual(round(decryptor.score_char_freq(perfect_score),1), 0)
     self.assertEqual(decryptor.score_char_freq('/'), 100*10)