PHPize Online / SQLize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
Copy Clear
Copy Format Clear
<?php // Заранее определенный словарь замен $charset = [ '0' => ['abcde', 'fghij', 'klmno'], '1' => ['pqrst', 'uvwxy', 'zabcd'], '2' => ['efghi', 'jklmn', 'opqrs'], '3' => ['stuvw', 'xyzab', 'cdefg'], '4' => ['hijkl', 'mnopq', 'rstuv'], '5' => ['wxyza', 'bcdef', 'ghijk'], '6' => ['lmnop', 'qrstx', 'yzabc'], '7' => ['fghij', 'klmno', 'pqrst'], '8' => ['uvwxy', 'zabcd', 'efghi'], '9' => ['jklmn', 'opqrs', 'stuvw'], ';' => ['pqrst', 'uvwxyz', 'abcde'] ]; // Функция для шифрования function encrypt($data, $key) { global $charset; $encrypted = ''; // Используем ключ для перестановки $keyIndex = 0; $keyLength = strlen($key); // Проходим по каждому символу данных foreach (str_split($data) as $char) { if (isset($charset[$char])) { // Случайный выбор вариации $replacement = $charset[$char][array_rand($charset[$char])]; // Переставляем буквы в строке на основе ключа $replacement = shiftString($replacement, $key[$keyIndex % $keyLength]); $encrypted .= $replacement; // Перемещаем к следующему символу ключа $keyIndex++; } } return $encrypted; } // Функция для расшифровки function decrypt($data, $key) { global $charset; $decrypted = ''; // Используем ключ для перестановки $keyIndex = 0; $keyLength = strlen($key); // Создаем обратный словарь для быстрого поиска $reverseCharset = []; foreach ($charset as $key => $values) { foreach ($values as $value) { $reverseCharset[$value] = $key; } } // Проходим по каждому символу данных $i = 0; while ($i < strlen($data)) { foreach (range(5, 7) as $length) { $pair = substr($data, $i, $length); if (isset($reverseCharset[$pair])) { $decrypted .= $reverseCharset[$pair]; $i += $length; break; } } } return $decrypted; } // Функция для сдвига строки по ключу function shiftString($str, $keyChar) { $shift = ord($keyChar) % 26; // сдвиг по ключу $shifted = ''; foreach (str_split($str) as $char) { $shifted .= chr(((ord($char) - ord('a') + $shift) % 26) + ord('a')); } return $shifted; } // Пример использования $data = '1;2;3'; $key = 'mykey'; // Ключ для шифрования // Шифруем данные $encryptedData = encrypt($data, $key); echo 'Encrypted: ' . $encryptedData . PHP_EOL; // Вывод зашифрованного текста // Расшифровываем данные $decryptedData = decrypt($encryptedData, $key); echo 'Decrypted: ' . $decryptedData . PHP_EOL; // Вывод расшифрованного текста
Show:  
Copy Clear