Война в Украине

Все мы знаем, какой пиздец сейчас происходит с Украиной и одной известной вам страной-победительницей-фашизма. Если вы хотите почитать об этом, помочь актуализировать информацию или высказать свое мнение — можете сделать это в статье Война в Украине и в обсуждении.

Редактирование Криптография/Примеры программных реализаций шифров

Перейти к: навигация, поиск

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 2: Строка 2:
 
{{sp-stub}}
 
{{sp-stub}}
  
== Шифр Цезаря ==
+
== Шифр Виженера на PHP ==
Собственно пример шифра Цезаря. Переменная $num задаёт смещение.
+
<source lang="php">
+
<?php
+
 
+
$text = "This is a example";
+
$num = 3; // Смещение
+
 
+
// Шифрование
+
$result='';
+
for ($x = 0; $x < strlen($text); $x++) {
+
$y = ord(substr($text,$x,1)) + $num;
+
/* Да, если величина более 255, надо вычесть
+
  поскольку отсчёт тогда начинается с начала алфавита */
+
if ($y > 255) $y = $y - 255;
+
$result = $result.chr($y);
+
}
+
 
+
print "Text is '$text', result is '$result'<br>";
+
 
+
// Дешифровка
+
$result2 = '';
+
for ($x = 0; $x < strlen($result); $x++) {
+
$y = ord(substr($result,$x,1)) - $num;
+
if ($y < $num) $y = 255 - $num;
+
$result2 = $result2.chr($y);
+
}
+
print "Decrypt text is '$result2'";
+
 
+
?>
+
</php>
+
</source>
+
 
+
== Шифр Виженера ==
+
 
Пример реализации полиалфавитного [http://ru.wikipedia.org/wiki/Шифр_Виженера Шифра Виженера] на PHP. Для кодирования и дешифровки используется шестнадцатиричный алфавит. Программа позволяет работать с любыми двоичными данными и ключами.
 
Пример реализации полиалфавитного [http://ru.wikipedia.org/wiki/Шифр_Виженера Шифра Виженера] на PHP. Для кодирования и дешифровки используется шестнадцатиричный алфавит. Программа позволяет работать с любыми двоичными данными и ключами.
 
<source lang="php">
 
<source lang="php">
Строка 127: Строка 94:
 
?>
 
?>
 
</source>
 
</source>
'''Примечание''': да, автор знает про функцию '''hex2bin''', но она [http://www.php.net/hex2bin существует] в версии PHP>=5.4.0, автор-же решил не привязываться к конкретным версиям языка программирования и сделать программу независимой от версий.
 

Обратите внимание, что все добавления и изменения текста статьи рассматриваются как выпущенные на условиях лицензии WTFPL public license (см. Urbanculture:Авторские права). Если вы не хотите, чтобы ваши тексты свободно распространялись и редактировались любым желающим, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого.
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ МАТЕРИАЛЫ, ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ!

Чтобы отредактировать эту страницу, пожалуйста, решите простой пример и введите ответ в текстовое поле (подробнее):

Отменить | Справка по редактированию  (в новом окне)

Шаблоны, используемые на этой странице: