Как зашифровать любой текст по ключу, то есть не имея ключ текст невозможно будет расшифровать. Объясните пожалуйста на пальцах, как это сделать?
На пальцах вот так, просто использовать расширение mcrypt:
Зашифровать.
http://php.net/manual/ru/function.mcrypt-encrypt.php
string mcrypt_encrypt ( string $cipher , string $key , string $data , string $mode [, string $iv ] )
Расшифровать.
http://php.net/manual/ru/function.mcrypt-decrypt.php
string mcrypt_decrypt ( string $cipher , string $key , string $data , string $mode [, string $iv ] )
Самый доступный и очевидный вариант - XOR шифрование. Если завести определенный ключ(строку) и xor`ить каждый символ исходной строки на [string.index % key.length] символ ключа, то получится, что для произведения обратной операции( расшифровки ), необходимо будет иметь ключ.
Вот так просто использовать голый mcrypt правильно (то есть чтобы шифрование было стойкое) - не простая задача. Для каждого алгоритма есть свои правильные параметры.
Поэтому вот ссылка на пример кода в котором реализовано AES-128 шифрование https://stackoverflow.com/questions/1788150/how-to-encrypt-string-in-php/19445173#19445173
В банке такое шифрование, конечно, использовать нельзя, но даже для инет-магазина подойдёт.
Можете рассмотреть вот такое решение:
function __encode($text, $key)
{
$td = mcrypt_module_open ("tripledes", '', 'cfb', '');
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size ($td), MCRYPT_RAND);
if (mcrypt_generic_init ($td, $key, $iv) != -1)
{
$enc_text=base64_encode(mcrypt_generic ($td,$iv.$text));
mcrypt_generic_deinit ($td);
mcrypt_module_close ($td);
return $enc_text;
}
}
function strToHex($string)
{
$hex='';
for ($i=0; $i < strlen($string); $i++)
{
$hex .= dechex(ord($string[$i]));
}
return $hex;
}
function __decode($text, $key)
{
$td = mcrypt_module_open ("tripledes", '', 'cfb', '');
$iv_size = mcrypt_enc_get_iv_size ($td);
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size ($td), MCRYPT_RAND);
if (mcrypt_generic_init ($td, $key, $iv) != -1) {
$decode_text = substr(mdecrypt_generic ($td, base64_decode($text)),$iv_size);
mcrypt_generic_deinit ($td);
mcrypt_module_close ($td);
return $decode_text;
}
}
public function hexToStr($hex)
{
$string='';
for ($i=0; $i < strlen($hex)-1; $i+=2)
{
$string .= chr(hexdec($hex[$i].$hex[$i+1]));
}
return $string;
}
Зашифровать
$code = strToHex(__encode($str, 'your key'));
Расшифровать
$str = __decode(hexToStr($code), 'your key');
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Допустим есть вот такой массив
string trim ( string $str [, string $character_mask = " \t\n\r\0\x0B" ] )
Здравствуйте, перенес сайт modx revo на новый хостингСайт работает а при вводе Правильного логина и пароля в /manager/ просто обновляется страница