init
This commit is contained in:
commit
66ec387b38
105
chefr.php
Normal file
105
chefr.php
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ru">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Шифрование/Расшифровка</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<form method="post" action="">
|
||||||
|
<label for="text">Введите текст:</label><br>
|
||||||
|
<textarea id="text" name="text" rows="4" cols="50"></textarea><br>
|
||||||
|
<input type="radio" id="encrypt" name="action" value="encrypt" checked>
|
||||||
|
<label for="encrypt">Шифровать</label><br>
|
||||||
|
<input type="radio" id="decrypt" name="action" value="decrypt">
|
||||||
|
<label for="decrypt">Расшифровывать</label><br>
|
||||||
|
<input type="submit" value="Отправить">
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||||
|
$text = $_POST['text'];
|
||||||
|
$action = $_POST['action'];
|
||||||
|
|
||||||
|
// Пример словаря для шифрования и расшифровки
|
||||||
|
$encryptionDictionary = [
|
||||||
|
'a' => 'xyz',
|
||||||
|
'b' => 'qwe',
|
||||||
|
'c' => 'rty',
|
||||||
|
'd' => 'uio',
|
||||||
|
'e' => 'pas',
|
||||||
|
'f' => 'dfg',
|
||||||
|
'g' => 'hjk',
|
||||||
|
'h' => 'lzx',
|
||||||
|
'i' => 'cvb',
|
||||||
|
'j' => 'nm',
|
||||||
|
'k' => 'bnm',
|
||||||
|
'l' => 'poi',
|
||||||
|
'm' => 'lkj',
|
||||||
|
'n' => 'mnb',
|
||||||
|
'o' => 'poiuytrewq',
|
||||||
|
'p' => 'asdfghjkl',
|
||||||
|
'q' => 'zxcvbnm',
|
||||||
|
'r' => 'qwertyuiop',
|
||||||
|
's' => 'asdfghjklzxcvbnm',
|
||||||
|
't' => 'qwertyuiopasdfghjkl',
|
||||||
|
'u' => 'zxcvbnmqwertyuiop',
|
||||||
|
'v' => 'asdfghjklzxcvbnmqwertyuiop',
|
||||||
|
'w' => 'qwertyuiopasdfghjklzxcvbnm',
|
||||||
|
'x' => 'zxcvbnmqwertyuiopasdfghjkl',
|
||||||
|
'y' => 'qwertyuiopasdfghjklzxcvbnm',
|
||||||
|
'z' => 'zxcvbnmqwertyuiopasdfghjkl'
|
||||||
|
];
|
||||||
|
|
||||||
|
// Создаем словарь для расшифровки
|
||||||
|
$decryptionDictionary = array_flip($encryptionDictionary);
|
||||||
|
|
||||||
|
function encryptText($text, $dictionary) {
|
||||||
|
$encryptedText = '';
|
||||||
|
$text = strtolower($text); // Приводим текст к нижнему регистру для простоты
|
||||||
|
for ($i = 0; $i < strlen($text); $i++) {
|
||||||
|
$char = $text[$i];
|
||||||
|
if (isset($dictionary[$char])) {
|
||||||
|
$encryptedText .= $dictionary[$char];
|
||||||
|
} else {
|
||||||
|
$encryptedText .= $char; // Если символ не найден в словаре, оставляем его без изменений
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $encryptedText;
|
||||||
|
}
|
||||||
|
|
||||||
|
function decryptText($text, $dictionary) {
|
||||||
|
$decryptedText = '';
|
||||||
|
$text = strtolower($text); // Приводим текст к нижнему регистру для простоты
|
||||||
|
$keys = array_keys($dictionary);
|
||||||
|
$values = array_values($dictionary);
|
||||||
|
|
||||||
|
while ($text != '') {
|
||||||
|
$found = false;
|
||||||
|
foreach ($values as $index => $value) {
|
||||||
|
if (strpos($text, $value) === 0) {
|
||||||
|
$decryptedText .= $keys[$index];
|
||||||
|
$text = substr($text, strlen($value));
|
||||||
|
$found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!$found) {
|
||||||
|
$decryptedText .= $text[0]; // Если символ не найден в словаре, оставляем его без изменений
|
||||||
|
$text = substr($text, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $decryptedText;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($action == 'encrypt') {
|
||||||
|
$result = encryptText($text, $encryptionDictionary);
|
||||||
|
} else {
|
||||||
|
$result = decryptText($text, $decryptionDictionary);
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "<h2>Результат:</h2>";
|
||||||
|
echo "<pre>$result</pre>";
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Loading…
x
Reference in New Issue
Block a user