Вернуться на предыдущую страницу

Иногда нам необходимо зашифровать данные с ключом так, чтобы другие пользователи не смогли его разгадать. К примеру, mcrypt_encrypt, не подходит для данной задачи, так как имеет недостатки безопасности и одним из самым эффективных и безопасных методов на сегодня является openssl шифрование.

Функции очень простые. Одна decrypt_ – дешефрует (разшифровывает) данные. Вторая crypt_ – шифрует данные. Принимают string. В дальнейшем Вы сможете сами дописать код, необходимый для приведения Вам требуемых типов данных (int, float).

Вот сами функции:

разшифровывает:

function decrypt_($data){
$method = "aes-256-cbc";
$pass = "78fdg21dfg1fdg1dfg1";
$iv = '9874-88-11447kx2';
$data = base64_decode(base64_decode($data));
return openssl_decrypt($data, $method, $pass, true, $iv);
}

зашифровывает:

function crypt_($data){
$method = "aes-256-cbc";
$pass = "78fdg21dfg1fdg1dfg1";
$iv = '9874-88-11447kx2';
$data = openssl_encrypt($data, $method, $pass, true, $iv);
return base64_encode(base64_encode($data));
}

Где

$method = "aes-256-cbc";//метод шифрования
$pass = "78fdg21dfg1fdg1dfg1";//пароль шифрования
$iv = '9874-88-11447kx2';//IV должен быть ТОЛЬКО определенной длины, иначе будет ошибка!
$data = openssl_encrypt($data, $method, $pass, true, $iv);//само шифрование
return base64_encode(base64_encode($data));//оборачиваем два раза в base64_ecode, чтобы не было кракозябр (нечитаемых символов)

Применять так:

шифруем:

echo crypt_('пам-парам');//QjZqemhjeFY4ZjhRaldoK2Y0cGpZeUhQbjdyMC9QaTV0SWw5REl4N1E1WT0=

дешифруем:

echo decrypt_('QjZqemhjeFY4ZjhRaldoK2Y0cGpZeUhQbjdyMC9QaTV0SWw5REl4N1E1WT0=');//пам-парам
Закодировать/декодировать данные PHP openssl с ключом