php加密实现
PHP 加密实现方法
PHP 提供了多种加密方式,包括对称加密、非对称加密、哈希算法等。以下是一些常见的加密实现方法:
对称加密(AES)
使用 OpenSSL 扩展实现 AES 加密:

$plaintext = "需要加密的数据";
$key = "加密密钥";
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
$ciphertext = openssl_encrypt($plaintext, 'aes-256-cbc', $key, 0, $iv);
echo "加密结果: " . $ciphertext;
$decrypted = openssl_decrypt($ciphertext, 'aes-256-cbc', $key, 0, $iv);
echo "解密结果: " . $decrypted;
哈希算法(密码存储)
使用 password_hash() 和 password_verify() 安全存储密码:

$password = "用户密码";
$hash = password_hash($password, PASSWORD_DEFAULT);
if (password_verify($password, $hash)) {
echo "密码验证成功";
} else {
echo "密码验证失败";
}
非对称加密(RSA)
使用 OpenSSL 生成 RSA 密钥对并加密:
// 生成密钥对
$config = array(
"digest_alg" => "sha512",
"private_key_bits" => 4096,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
);
$res = openssl_pkey_new($config);
openssl_pkey_export($res, $privateKey);
$publicKey = openssl_pkey_get_details($res)["key"];
// 加密
$data = "敏感数据";
openssl_public_encrypt($data, $encrypted, $publicKey);
$encrypted = base64_encode($encrypted);
// 解密
openssl_private_decrypt(base64_decode($encrypted), $decrypted, $privateKey);
echo $decrypted;
数据签名验证
使用 OpenSSL 进行数据签名和验证:
$data = "重要数据";
openssl_sign($data, $signature, $privateKey, OPENSSL_ALGO_SHA256);
$signature = base64_encode($signature);
// 验证签名
$valid = openssl_verify($data, base64_decode($signature), $publicKey, OPENSSL_ALGO_SHA256);
echo $valid === 1 ? "签名有效" : "签名无效";
注意事项
- 加密密钥应妥善保管,建议存储在安全的地方
- 对于密码存储,始终使用 password_hash() 而不是直接哈希
- IV(初始化向量)应随机生成且每次加密都不同
- 非对称加密适合小数据量加密,大数据量建议使用对称加密
- 保持 PHP 和 OpenSSL 扩展为最新版本以确保安全性






