PHP, as a popular server-side scripting language, needs to perform data encryption and decryption to ensure data security when processing sensitive data. This article will introduce how PHP performs data encryption and decryption.
(1) Generate AES key:
$key = random_bytes(32); // 生成一个32字节长的随机密钥
(2) Encrypt data:
$data = "敏感数据"; $encrypted = openssl_encrypt($data, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv); // 加密数据 $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('AES-256-CBC')); // 生成一个随机的初始向量
(3) Decrypt data:
$decrypted = openssl_decrypt($encrypted, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv); // 解密数据
(1) Generate RSA key pair:
$config = array( "digest_alg" => "sha512", "private_key_bits" => 4096, "private_key_type" => OPENSSL_KEYTYPE_RSA, ); $res = openssl_pkey_new($config); // 生成RSA密钥对 openssl_pkey_export($res, $privateKey); // 导出私钥 $publicKey = openssl_pkey_get_details($res)['key']; // 获取公钥
(2) Encrypt data:
$data = "敏感数据"; openssl_public_encrypt($data, $encrypted, $publicKey); // 使用公钥加密数据
(3) Decrypt data:
openssl_private_decrypt($encrypted, $decrypted, $privateKey); // 使用私钥解密数据
(1) Hash calculation on the original data:
$data = "原始数据"; $hash = md5($data); // 计算MD5哈希值 $hash = sha1($data); // 计算SHA1哈希值 $hash = hash('sha256', $data); // 计算SHA256哈希值
(2) Verify the hash value:
$hash = "存储的哈希值"; if (md5($data) === $hash) { echo "哈希值一致"; } else { echo "哈希值不一致"; }
Summary: When dealing with sensitive data, PHP provides a variety of encryption and decryption methods, including symmetric encryption algorithms, asymmetric encryption algorithms and hash algorithms. Developers can choose appropriate encryption algorithms to protect data security based on actual needs.
The above is the detailed content of PHP data encryption and decryption operations. For more information, please follow other related articles on the PHP Chinese website!