当前位置:首页 > PHP

php加密实现

2026-02-15 09:31:44PHP

PHP 加密实现方法

PHP 提供了多种加密方式,包括对称加密、非对称加密、哈希算法等。以下是一些常见的加密实现方法:

对称加密(AES)

使用 OpenSSL 扩展实现 AES 加密:

php加密实现

$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() 安全存储密码:

php加密实现

$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 扩展为最新版本以确保安全性

标签: php
分享给朋友:

相关文章

php实现文件上传

php实现文件上传

PHP 文件上传实现方法 在 PHP 中实现文件上传需要处理 HTML 表单和服务器端脚本。以下是详细步骤: 创建 HTML 表单 使用 enctype="multipart/form-data"…

php实现树

php实现树

PHP实现树结构的方法 在PHP中实现树结构通常可以通过递归或迭代的方式完成。以下是几种常见的实现方法: 递归实现树结构 递归是处理树结构的自然方式,尤其适用于具有未知深度的树。 class…

git php实现

git php实现

Git 与 PHP 的集成实现 使用 PHP 执行 Git 命令 通过 PHP 的 exec()、shell_exec() 或 passthru() 函数可以直接调用 Git 命令,适用于服务器端操作…

php如何实现直播

php如何实现直播

实现直播功能的方法 PHP可以通过结合其他技术和工具来实现直播功能。以下是几种常见的方法: 使用流媒体服务器 配置流媒体服务器如Nginx-RTMP、Red5或Wowza。这些服务器支持RTM…

php实现注册

php实现注册

注册功能实现步骤 数据库准备 创建用户表,包含字段如id、username、password、email等。示例SQL: CREATE TABLE users ( id INT AUTO_…

php验证码的实现

php验证码的实现

PHP 验证码实现方法 使用 GD 库生成基础验证码 创建画布并生成随机字符串作为验证码内容: session_start(); $width = 120; $height = 40; $image…