
PHP 中的几种主要加密方式:
散列函数将数据转换成一个固定长度的字符串,这个过程是不可逆的。散列通常用于存储密码,以确保即使数据库被泄露,攻击者也无法轻易得到原始密码。
代码语言:txt
复制
$hash = md5("string_to_hash");代码语言:txt
复制
$hash = sha1("string_to_hash");代码语言:txt
复制
$hash = hash('sha256', "string_to_hash");代码语言:txt
复制
$password = "user_password"; $hash = password_hash($password, PASSWORD_DEFAULT);验证密码散列:
代码语言:javascript
复制
if (password_verify($password, $hash)) {
    echo "Password is valid.";
} else {
    echo "Invalid password.";
}对称加密使用相同的密钥进行加密和解密。它比非对称加密要快,适合加密大量数据。
代码语言:txt
复制
$data = "Sensitive data";
$key = '0123456789abcdef'; // AES-128 密钥长度
$iv = openssl_random_pseudo_bytes(16); // 随机初始化向量
$encrypted = openssl_encrypt($data, "AES-128-CBC", $key, 0, $iv);
$decrypted = openssl_decrypt($encrypted, "AES-128-CBC", $key, 0, $iv);非对称加密使用一对密钥:公钥加密数据,私钥解密。这种方式常用于加密小量数据,如加密密码、安全传输密钥等。
代码语言:txt
复制
// 生成密钥对
$res = openssl_pkey_new([
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
]);
// 导出密钥
openssl_pkey_export_to_file($res, "private.key");
$pubKey = openssl_pkey_get_details($res);
openssl_pkey_export_to_file($pubKey["key"], "public.key");
// 加密
$publicKey = openssl_pkey_get_public("file://public.key");
openssl_public_encrypt($data, $encrypted, $publicKey);
// 解密
$privateKey = openssl_pkey_get_private("file://private.key");
openssl_private_decrypt($encrypted, $decrypted, $privateKey);SSL/TLS 用于加密网络通信,确保数据在客户端和服务器之间传输过程中的安全。
HMAC 是一种用于验证数据完整性和认证的机制,它结合了加密密钥和散列函数。
代码语言:txt
复制
$data = "data";
$key = "secret_key";
$hmac = hash_hmac('sha256', $data, $key);加密是保护数据安全的重要手段,但也需要正确实施和维护,以确保其有效性。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。