当前位置:首页 > PHP

php加密实现

2026-02-15 09:31:44PHP

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 进行数据签名和验证:

php加密实现

$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中实现树结构通常可以通过递归或迭代的方式完成。以下是几种常见的实现方法: 递归实现树结构 递归是处理树结构的自然方式,尤其适用于具有未知深度的树。 class Tr…

php实现递归

php实现递归

递归的基本概念 递归是一种函数调用自身的技术,适用于解决可以分解为相同子问题的问题。在PHP中,递归需要明确的终止条件(基线条件),否则会导致无限循环。 递归实现阶乘 阶乘是经典的递归案例,n! =…

php实现栈

php实现栈

栈的基本概念 栈(Stack)是一种遵循后进先出(LIFO)原则的数据结构。核心操作包括: push:元素入栈。 pop:元素出栈(返回并移除栈顶元素)。 peek:查看栈顶元素…

php实现排序

php实现排序

PHP 数组排序方法 PHP 提供了多种内置函数用于数组排序,适用于不同的排序需求。以下是常见的排序方法: 按值升序排序 sort() 函数对数组按值升序排序,重置键名(索引数组适用): $num…

php实现异步

php实现异步

PHP 实现异步的方法 PHP 本身是同步执行的脚本语言,但可以通过以下方法模拟异步操作或实现异步效果: 使用多进程(pcntl_fork) 通过 pcntl_fork 创建子进程实现异步,适用于…

php实现mvc

php实现mvc

PHP 实现 MVC 架构 MVC(Model-View-Controller)是一种常用的软件设计模式,将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller…