@catherine_wintheiser
На PHP существует множество способов шифрования данных, включая симметричные и асимметричные алгоритмы. Ниже приведены некоторые примеры реализации шифрования на PHP.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// Генерируем ключ и вектор инициализации $key = openssl_random_pseudo_bytes(32); $iv = openssl_random_pseudo_bytes(16); // Шифруем данные $data = 'Секретная информация'; $ciphertext = openssl_encrypt($data, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv); // Дешифруем данные $plaintext = openssl_decrypt($ciphertext, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv); // Проверяем, что данные совпадают echo $plaintext; // Секретная информация |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// Генерируем ключ и вектор инициализации $key = 'mysecretkey'; $iv = mcrypt_create_iv(16, MCRYPT_RAND); // Шифруем данные $data = 'Секретная информация'; $ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, $iv); // Дешифруем данные $plaintext = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $ciphertext, MCRYPT_MODE_CBC, $iv); // Проверяем, что данные совпадают echo $plaintext; // Секретная информация |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
// Генерируем ключ и вектор инициализации $key = sodium_crypto_secretstream_xchacha20poly1305_keygen(); $nonce = random_bytes(SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_NONCEBYTES); // Шифруем данные $data = 'Секретная информация'; $ciphertext = sodium_crypto_secretstream_xchacha20poly1305_push( null, $data, $nonce, $key ); // Дешифруем данные $plaintext = sodium_crypto_secretstream_xchacha20poly1305_pull( $ciphertext, $nonce, $key ); // Проверяем, что данные совпадают echo $plaintext; // Секретная информация |
Независимо от используемого алгоритма шифрования, необходимо сохранять ключи и векторы инициализации в безопасном месте, чтобы они не могли быть украдены злоумышленниками.