Таким образом, у меня есть два файла, первый представляет собой текстовый файл, а второй является шифрование первого файла:Запуск массива через словарь с повторяющимися значениями
текстовый файл:
cryptool (начальный пример для семейства версий криптолопа 1.x)
cryptool - это бесплатная бесплатная образовательная программа о криптографии и криптоанализе, предлагающая обширный onlin e help и многие визуализации.
это текстовый файл, созданный для того, чтобы помочь вам сделать первые шаги с помощью cryptool.
1) в качестве первого шага рекомендуется прочитать прилагаемую справочную информацию , это обеспечит полезный надзор за всеми доступными функциями в этом приложении. стартовой страницей онлайн-справки может быть доступ через меню «Справка -> стартовая страница» в верхнем правом углу экрана или с помощью ключевого слова поиска «стартовая страница» в индексе онлайн-справку. нажмите f1, чтобы начать онлайн-помощь всюду в cryptool.
2) возможным следующим шагом было бы зашифровать файл с помощью алгоритма caesar . это можно сделать через меню «crypt/decrypt -> симметричный (классический)».
3) есть несколько примеров (руководств), предоставляемых в онлайн-справочной системе , которые обеспечивают простой способ получить понимание криптологии. Эти примеры можно найти в меню «Справка -> сценарии (учебники)».
4) вы также можете развить свои знания: - перемещение по меню. вы можете нажать f1 в любом выбранном пункте меню, чтобы получить дополнительную информацию. - чтение прилагаемого файла readme (см. Меню «help -> readme»). - просмотр красочной презентации (эта презентация может быть найдена несколькими способами: например, в меню «Справка» этого приложения или через раздел «документация», который находится на странице «Начало» справочной системы ). - просмотр веб-страницы www.cryptool.org.
Июль 2010 cryptool команда
зашифрованный файл:
ncjaezzw (delcetyr pilxawp qzc особ ncjaezzw gpcdtzy qlxtwj 1.I)
ncjaezzw тд л nzxacpspydtgp qcpp pofnletzylw aczrclx lmzfe ncjaezrclasj lyo ncjaelylwjdtd zqqpctyr piepydtgp zywtyp spwa lyo xlyj gtdflwtkletzyd.
estd td l epie qtwp, ncplepo ty zcopc ez spwa jzf ez xlvp jzfc qtcde depad htes ncjaezzw.
1) Л.Д. л qtcde DEPA того тд cpnzxxpyopo jzf cplo особ tynwfopo zywtyp spwa, ESTD htww aczgtop л fdpqfw zgpcdtrse ZQ LWW lgltwlmwp qfynetzyd htesty ESTD laawtnletzy. особ delcetyr alrp ZQ особ zywtyp spwa олько пл lnnpddpo GTL особ xpyf "spwa -> delcetyr alrp" ль особы Eza ctrse ZQ особ dncppy гс fdtyr особы dplcns vpjhzco "delcetyr alrp" htesty особы tyopi ZQ особ zywtyp spwa. acpdd q1 ez delce esp zywtyp spwa pgpcjhspcp ty ncjaezzw.
2) l azddtmwp ypie depa hzfwo mp ez pyncjae l qtwp htes esp nlpdlc lwrzctesx. estd nly mp ozyp gtl esp xpyf "ncjae/opncjae -> djxxpectn (nwlddtn)".
3) espcp LCP dpgpclw pilxawpd (efezctlwd) aczgtopo htesty особ zywtyp spwa hstns aczgtop ют pldj HLJ эз RLTY ют fyopcdelyotyr ZQ ncjaezwzrj. espdp pilxawpd nly mp qzfyo gtl esp xpyf "spwa -> dnpylctzd (efezctlwd)".
4) jzf nly lwdz opgpwza jzfc vyzhwporp mj: - ylgtrletyr esczfrs esp xpyfd. jzf nly acpdd q1 le lyj dpwpnepo xpyf tepx ez rpe qfcespc tyqzcxletzy. - cplotyr esp tynwfopo cploxp qtwp (dpp esp xpyf "spwa -> cploxp"). - gtphtyr особ tynwfopo nzwzcqfw acpdpyeletzy (ESTD acpdpyeletzy олько т.пло qzfyo ZY dpgpclw hljd: P.R. ти особ "spwa" xpyf ZQ ESTD laawtnletzy, ZC GTL особ "oznfxpyeletzy" dpnetzy qzfyo ль особы "delcetyr" alrp ZQ особ zywtyp spwa). - gtphtyr esp hpmalrp hhh.ncjaezzw.zcr.
ufwj 2010 особ ncjaezzw eplx
Im подсчитывая письмо вхождений в обоих файлах, создавая словарь, так что я могу вернуться в зашифрованный файл и изменить большинство писем правильными, некоторые не будете но я сделаю это вручную позже. Проблема в том, что я думаю, что некоторые буквы имеют одинаковое количество осколков, изменяя одну и ту же букву более одного раза. Heres мой код до сих пор, проблема уверенно в петлях foreach, но им не удается ее исправить. Возможно, я могу использовать флаги, но я понятия не имею, как это сделать в цикле foreach.
//gets string from both text files
$reference = file_get_contents('reference_file.txt', true);
$encrypted = file_get_contents('encrypted_file.txt', true);
//Uses regex to take away all the characters wich are not letters
$azreference = preg_replace("/[^a-z]+/", "", $reference);
$azencrypted = preg_replace("/[^a-z]+/", "", $encrypted);
//Counts number of letter ocurrences and makes a string: "Char => Ocurrences"
$refarray1 = array_count_values(str_split($azreference, '1'));
$refarray2 = array_count_values(str_split($azencrypted, '1'));
foreach ($refarray1 as $key => $val) {
foreach ($refarray2 as $key2 => $val2) {
if ($val == $val2){
$encrypted = str_replace($key2, $key, $encrypted); // (replaces $key2 for $key)
}
}
}
print_r($encrypted);
Выходная строка является, своего рода которым является неправильным XD:
jjdebdda (wbdjbbdj ebdbeae ZDJ BWE jjdebdda jejwbdd zdbbad 1.b) jjdebdda м.т. д jdbejewedwbje zjee edzjdbbddda ejdjjdb dbdzb jjdebdjjdewd ddd jjdebdddadwbw dzzejbdj ebbedwbje ddabde weae ddd bddd jbwzdabzdbbddw. bwbw bw d bebb zbae, jjedbed bd djdej bd weae ddz bd bdje ddzj zbjwb wbeew wbbw jjdebdda. 1) dw d zbjwb wbee bb bw jejdbbedded ddz jedd bwe bdjazded ddabde weae, bwbw wbaa ejdjbde d zwezza djejwbjwb dz daa djdbadbae zzdjbbddw wbbwbd bwbw deeabjdbbdd. С wbdjbbdj эдж дг С ddabde weae JDD быть djjewwed JBD С bedz "weae -> wbdjbbdj эдже" дб С BDE jbjwb дг С wjjeed диджи zwbdj С wedjjw jedwdjd "wbdjbbdj эдж" wbbwbd С bddeb дг С ddabde weae. ejeww z1 bd wbdjb bwe ddabde weae ejejdwweje bd jjdebdda. 2) d edwwbbae debb wbee wdzad be bd edjjdeb d zbae wbbw bwe jdewdj dajdjbbwb. bwbw jdd be ddde jbd bwe bedz "jjdeb/dejjdeb -> wdbbebjbj (jadwwbj)".3) bweje dje wejejda ebdbeaew (bzbdjbdaw) ejdjbded wbbwbd bwe ddabde weae wwbjw ejdjbde dd edwd wdd bd jdbd dd zddejwbdddbdj dz jjdebdadjd. bwewe ebdbeaew jdd be zdzdd jbd bwe bedz "weae -> wjeddjbdw (bzbdjbdaw)". 4) ddz jdd dawd dejeade ddzj jddwaedje bd: - ddjbjdbbdj bwjdzjw bwe bedzw. ddz jdd ejeww z1 db ddd weaejbed bedz bbeb bd jeb zzjbwej bdzdjbdbbdd. - jeddbdj bwe bdjazded jeddbe zbae (wee bwe bedz "weae -> jeddbe"). - jbewbdj Bwe bdjazded jdadjzza ejewedbdbbdd (bwbw ejewedbdbbdd JDD будет zdzdd дд wejejda wddw: "weae" E.J. шд BWE bedz дг bwbw deeabjdbbdd, ди-джей JBD BWE "ddjzbedbdbbdd" wejbbdd zdzdd дБ BWE "wbdjbbdj" эдж DZ BWE ddabde weae). - jbewbdj bwe webedje www.jjdebdda.djj. zzad 2010 СМВ jjdebdda bedb
Как насчет замены символов их прописными буквами? В настоящее время вы меняете несколько символов несколько раз, поэтому в итоге вы получаете подмножество алфавита. То есть если вы измените a на z и уже есть z в алфавите, в котором вы столкнулись с проблемой. –
thats exactilly моя проблема, как я могу это контролировать? –
Мне казалось, что я поднял решение в первом предложении? Или это решение не понятно? В итоге у вас будет весь текст в верхнем регистре (который вы, конечно, можете преобразовать обратно в нижний регистр, когда у вас есть решение). –