У меня есть два файла: один - это шифрование оригинала с использованием частотного анализа, а просто новая строка с расшифрованной строкой (некоторые символы, вероятно, не будут изменены корректно, но это нормально, плохо меняйте их вручную позже), но im completelly зациклился на том, как это сделать после подсчета случаев в обоих файлах.Использование частотного анализа для декодирования текстового файла, зашифрованного с помощью замены одного символа
//gets string from both text files and converts in a array
$reference = file_get_contents('reference_file.txt', true);
$encrypted = file_get_contents('encrypted_file.txt', true);
$refarray = str_split($reference, '1');
$encarray = str_split($encrypted, '1');
//counts ocurrences in both strings and saves them as an array : "Character" ==> "Number of Ocurrences"
$refarray1 = array_count_values(str_split(file_get_contents('reference_file.txt', true)));
$refarray2 = array_count_values(str_split(file_get_contents('encrypted_file.txt', true)));
Теперь я не знаю, куда идти отсюда, полностью застрял
EDIT 1:
foreach ($refarray1 as $key => $val) {
print "$key = $val <br \>";
$aux69 = $key;
foreach ($refarray2 as $key2 => $val2) {
if ($val == $val2) {
$encrypted = str_replace($key2, $key, $encrypted);
}
}
}
Я придумал это, но его до сих пор не работает, он меняет много букв в зашифрованной строке, но ее нечитабельная, она изменила большинство символов только на «j» 'd' 'e', пример конечной строки:
"jjdebdda м.т. d jdbejewedwbje zjee edzjdbbddda"