当前位置:首页 > PHP

php实现aes

2026-01-29 09:52:41PHP

AES 加密在 PHP 中的实现

PHP 内置了 OpenSSL 扩展,支持 AES 加密。以下是 AES-256-CBC 模式的实现示例:

加密函数

function encryptAES($data, $key, $iv) {
    $cipherText = openssl_encrypt(
        $data,
        'AES-256-CBC',
        $key,
        OPENSSL_RAW_DATA,
        $iv
    );
    return base64_encode($cipherText);
}

解密函数

function decryptAES($encryptedData, $key, $iv) {
    $decrypted = openssl_decrypt(
        base64_decode($encryptedData),
        'AES-256-CBC',
        $key,
        OPENSSL_RAW_DATA,
        $iv
    );
    return $decrypted;
}

密钥和 IV 生成

AES-256 需要 32 字节密钥和 16 字节 IV:

$key = openssl_random_pseudo_bytes(32);
$iv = openssl_random_pseudo_bytes(16);

使用示例

$plaintext = "Secret message";
$key = "your-32-byte-encryption-key-here"; // 必须 32 字节
$iv = "16-byte-IV-here"; // 必须 16 字节

$encrypted = encryptAES($plaintext, $key, $iv);
$decrypted = decryptAES($encrypted, $key, $iv);

安全注意事项

密钥应安全存储,避免硬编码在代码中。IV 每次加密都应不同,建议使用 random_bytes() 生成。

对于需要存储加密数据的情况,建议将 IV 与密文一起存储:

$fullCipher = base64_encode($iv).'|'.base64_encode($cipherText);

解密时拆分 IV 和密文:

php实现aes

list($iv, $cipherText) = explode('|', $fullCipher);
$iv = base64_decode($iv);
$cipherText = base64_decode($cipherText);

标签: phpaes
分享给朋友:

相关文章

php记住密码怎么实现

php记住密码怎么实现

使用Cookie实现记住密码功能 在PHP中,可以通过设置Cookie来记住用户的登录状态。以下是一个简单的实现方式: // 用户登录验证成功后 if ($login_success) {…

php购物车实现

php购物车实现

PHP购物车实现方法 使用PHP实现购物车功能可以通过多种方式完成,以下是几种常见的实现方法: Session存储购物车数据 利用PHP的$_SESSION超全局变量存储购物车数据是最简单的方法。用…

php实现排序

php实现排序

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

php 实现购物车

php 实现购物车

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

php实现mysql

php实现mysql

PHP 连接 MySQL 的基本方法 PHP 提供了多种方式与 MySQL 数据库进行交互,以下是最常用的几种方法。 使用 MySQLi 扩展 MySQLi 是 MySQL 的改进扩展,支持面向对…

php实现异步

php实现异步

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