массивы — создавайте простой код шифрования в PHP, заменяя символы

Я новичок в PHP.

Я хочу сделать простую функцию шифрования в PHP, которая изменяет строку на новую строку путем изменения символов.

Для этого я создаю два массива символов.

В первом массиве я назначаю все символы и сортирую их следующим образом:

$true_chars = array('a','b','c','d','e');

В другом массиве я меняю положение символов.

$fake_chars = array('c','d','a','e','b');

Моя цель состоит в том, чтобы, когда функция получила правильную строку, изменила строковые символы, заменив второй массив.

Например, моя строка acdc функция шифрования сравнивает acdc символы в первом массиве, чтобы получить истинные индексы (если нужно), а затем заменить на второй индекс массива и изменить его на caea,

как на самом деле я могу это сделать?

1

Решение

Начните с создания массива, который отображает исходный символ на закодированный символ:

$chars = [
'a' => 'c',
'b' => 'd',
'c' => 'a',
'd' => 'e',
'e' => 'b',
];

Затем вы перебираете строку и заменяете символы:

$original  = 'acdc';

// Encrypt
$encrypted = '';

for ($i = 0; $i < strlen($original); $i++) {
// If we find the character in our mapping array, use the mapped character.
// If not, let's use the original character.
$encrypted .= array_key_exists($original[$i], $chars)
? $chars[$original[$i]]
: $original[$i];
}

print_r($encrypted);
// caea

Чтобы расшифровать его, нам просто нужно проверить, существует ли символ в массиве, и использовать вместо него ключ:

// Decrypt
$decrypted = '';
for ($i = 0; $i < strlen($encrypted); $i++) {
// Find the correct key
$key = array_search($encrypted[$i], $chars);

// If the character existed, use the key.
// If not, use the original character.
$decrypted .= $key !== false
? $key
: $encrypted[$i];
}

print_r($decrypted);
// acdc

Демо-версия: https://3v4l.org/vQAZj

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector