php实现加密
PHP 加密方法
PHP 提供了多种加密方式,可以根据需求选择不同的方法。以下是常见的加密实现方式:
使用 password_hash 进行密码哈希
password_hash 是 PHP 推荐的密码哈希函数,支持多种算法如 PASSWORD_DEFAULT 和 PASSWORD_BCRYPT。
$password = "user_password";
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);
验证密码时使用 password_verify:

$isValid = password_verify($password, $hashedPassword);
使用 OpenSSL 进行对称加密
OpenSSL 扩展提供了 AES 等对称加密算法的支持。
$data = "sensitive_data";
$key = openssl_random_pseudo_bytes(32);
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
$encrypted = openssl_encrypt($data, 'aes-256-cbc', $key, 0, $iv);
$decrypted = openssl_decrypt($encrypted, 'aes-256-cbc', $key, 0, $iv);
使用 hash 函数进行哈希计算
hash 函数支持多种哈希算法如 sha256、md5 等。

$data = "data_to_hash";
$hash = hash('sha256', $data);
使用 sodium 扩展进行现代加密
PHP 7.2+ 内置的 sodium 扩展提供了更安全的加密方式。
$key = sodium_crypto_secretbox_keygen();
$nonce = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES);
$ciphertext = sodium_crypto_secretbox("message", $nonce, $key);
$plaintext = sodium_crypto_secretbox_open($ciphertext, $nonce, $key);
使用 crypt 函数进行传统加密
crypt 是较早的加密函数,但仍然可用。
$hashed = crypt('password', '$2a$10$usesomesillystringforsalt$');
注意事项
- 密码存储应使用 password_hash,而不是直接哈希
- 加密密钥需要安全存储,不能硬编码在代码中
- 对于需要解密的场景,确保 IV 或 nonce 与密文一起存储
- 定期检查并更新使用的加密算法,避免使用已弃用的方法





