当前位置:首页 > PHP

php实现aes加密

2026-01-29 01:33:33PHP

PHP 实现 AES 加密

PHP 提供了 openssl_encryptopenssl_decrypt 函数来实现 AES 加密和解密。AES(高级加密标准)是一种对称加密算法,支持 128、192 和 256 位密钥长度。

加密示例代码

以下是一个完整的 AES-256-CBC 加密示例:

$plaintext = "需要加密的数据";
$key = "0123456789abcdef0123456789abcdef"; // 32字节密钥(AES-256)
$iv = openssl_random_pseudo_bytes(16); // 初始化向量

$ciphertext = openssl_encrypt(
    $plaintext,
    'AES-256-CBC',
    $key,
    OPENSSL_RAW_DATA,
    $iv
);

$result = base64_encode($iv.$ciphertext);
echo "加密结果: ".$result;

解密示例代码

$encrypted = base64_decode($result);
$iv = substr($encrypted, 0, 16);
$ciphertext = substr($encrypted, 16);

$plaintext = openssl_decrypt(
    $ciphertext,
    'AES-256-CBC',
    $key,
    OPENSSL_RAW_DATA,
    $iv
);

echo "解密结果: ".$plaintext;

注意事项

  • 密钥长度必须与所选算法匹配:AES-128 需要 16 字节,AES-192 需要 24 字节,AES-256 需要 32 字节
  • 初始化向量(IV)应该是随机且唯一的,每次加密都应生成新的 IV
  • 存储加密数据时,通常需要同时存储 IV(无需保密)
  • 考虑使用 HMAC 进行数据完整性验证

其他可用模式

除了 CBC 模式,PHP 还支持:

  • AES-128/192/256-ECB(不推荐,安全性较低)
  • AES-128/192/256-CTR
  • AES-128/192/256-GCM(推荐,提供认证加密)

php实现aes加密

标签: phpaes
分享给朋友:

相关文章

php实现树

php实现树

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

php实现注册

php实现注册

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

php 实现登录

php 实现登录

PHP 登录功能实现 使用 PHP 实现登录功能通常需要结合数据库验证和会话管理。以下是一个基本的登录实现流程: 数据库准备 创建用户表存储用户名和密码(建议使用哈希加密): CREATE TAB…

php 实现购物车

php 实现购物车

PHP 实现购物车功能 购物车功能是电子商务网站的核心部分,可以通过 PHP 和 Session 或数据库来实现。以下是两种常见的实现方式: 使用 Session 存储购物车数据 Sessi…

php实现跳转

php实现跳转

PHP 实现页面跳转的方法 在 PHP 中实现页面跳转有多种方式,以下是常见的几种方法及其适用场景: 使用 header() 函数 通过 header() 函数发送 HTTP 头部信息实现跳转。注…

php队列的实现

php队列的实现

PHP队列的实现方式 PHP中实现队列功能可以通过多种方式,根据需求选择适合的方案: 使用数组实现基础队列 PHP数组本身支持队列操作,利用array_push和array_shift函数:…