Главная->Уроки по php->Лучший способ зашифровать/дешифровать данные
Лучший способ зашифровать/дешифровать данные
В этом горячем совете вы узнаете как можно надёжно зашифровать данные, а затем в нужный момент получить обратно текст в явном виде. Для начала нам необходимо подготовить ключ, согласно которому будет осуществляться шифровка и дешифровка данных. 1 $key = 'password to (en/de)crypt'; 2 $string = ' string to be encrypted '; // данные для шифровки/дешифровки Шифрование 01 $iv = mcrypt_create_iv( 02 mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC), 03 MCRYPT_DEV_URANDOM 04 ); 05 06 $encrypted = base64_encode( 07 $iv . 08 mcrypt_encrypt( 09 MCRYPT_RIJNDAEL_128, 10 hash('sha256', $key, true), 11 $string, 12 MCRYPT_MODE_CBC, 13 $iv 14 ) 15 ); Дешифрование 01 $data = base64_decode($encrypted); 02 $iv = substr($data, 0, mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC)); 03 04 $decrypted = rtrim( 05 mcrypt_decrypt( 06 MCRYPT_RIJNDAEL_128, 07 hash('sha256', $key, true), 08 substr($data, mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC)), 09 MCRYPT_MODE_CBC, 10 $iv 11 ), 12 "\0" 13 ); Результат 1 echo 'Encrypted:' . "\n"; 2 var_dump($encrypted); // "m1DSXVlAKJnLm7k3WrVd51omGL/05JJrPluBonO9W+9ohkNuw8rWdJW6NeLNc688=" 3 4 echo "\n"; 5 6 echo 'Decrypted:' . "\n"; 7 var_dump($decrypted); // " string to be encrypted "