Всем доброго времени суток! :)Знаю, что подобная тема уже когда-то создавалась, но там внятного ответа я так и не нашел. Скажу заранее, что в программистских делах я не сильно разбираюсь, - собственно поэтому и обратился на этот форум. С Php Devel Studio познакомился совсем недавно, и моими первыми проектами были несколько лабораторных работ по методам защиты информации. Затем я забросил эту тему, поняв, что это, все-таки, не совсем моё. Но через некоторое время я подумал, почему бы не попробовать сделать несколько программ, которые будут в той или иной мере осуществлять различные методы шифрования. Скажете, мол, таких сервисов пруд пруди , но согласитесь, что самому это сделать намного интереснее. Более того, я считаю, что для более полного понимания какой-либо деятельности необходимо изучить все её аспекты, в том числе и на программном уровне.
Итак, для самого начала я решил реализовать всем небезызвестный шифр Цезаря. Каков алгоритм шифрования, думаю, многие знают, - каждая буква в строке заменяется другой с определенным постоянным сдвигом. Для того, чтобы это реализовать я сделал следующее. Добавил одно окно edit1 как редактор текстового поля, в которое нужно вводить обычный текст, окно memo1 для вывода шифрованного сообщения и кнопку "Зашифровать" . Пока я не стал дополнять интерфейс программы полем для определения сдвига, - пусть он будет пока задан программно. Итак, на кнопку я повесил следующий код:
PHP код:
$text = c("edit1")->text;
$alph = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
$n=strlen($text);
for ($i=0; $i<=$n;$i+=1)
{
for ($j=0; $j<=26; $j+=1)
{
if ($text[$i] == $alph[$j])
{
$text[$i]=$alph[(($j+4)%26)];
break;
}
}
}
c("memo1")->text = $text;
PHP код:
$text = c("edit1")->text;
PHP код:
$text = str_replace ('a',1,$text);
Сейчас я несколько хитрым способом решил данную проблему, - я удвоил массив исходного алфавита. Но вопрос остается открытым, - по каким причинам он не складывает по модулю? На всех php форумах пишут, что это выполняется знаком процента "%". Но у меня так не выходит(