当前位置:首页 > PHP

aes php实现

2026-02-14 12:46:18PHP

PHP 实现 AES 加密/解密

PHP 内置的 openssl 扩展提供了 AES 加密功能,支持多种模式(如 CBC、ECB 等)和填充方式。以下是完整的实现示例:

AES 加密

function aesEncrypt($data, $key, $iv) {
    $cipher = "aes-256-cbc"; // 使用 AES-256-CBC 模式
    $options = OPENSSL_RAW_DATA;
    $encrypted = openssl_encrypt($data, $cipher, $key, $options, $iv);
    return base64_encode($encrypted); // 返回 Base64 编码结果
}

AES 解密

function aesDecrypt($encryptedData, $key, $iv) {
    $cipher = "aes-256-cbc";
    $options = OPENSSL_RAW_DATA;
    $decrypted = openssl_decrypt(
        base64_decode($encryptedData), 
        $cipher, 
        $key, 
        $options, 
        $iv
    );
    return $decrypted;
}

使用示例

$key = "your_secret_key_32_bytes_long"; // 必须为 32 字节(256 位)
$iv = "initialization_vec"; // 必须为 16 字节(128 位)
$data = "Sensitive data to encrypt";

// 加密
$encrypted = aesEncrypt($data, $key, $iv);
echo "Encrypted: " . $encrypted . "\n";

// 解密
$decrypted = aesDecrypt($encrypted, $key, $iv);
echo "Decrypted: " . $decrypted . "\n";

关键参数说明

  • $key:密钥长度需与算法匹配(如 AES-256 需 32 字节密钥)
  • $iv:初始化向量(IV)必须唯一且随机,CBC 模式要求 16 字节
  • $cipher:支持的算法列表可通过 openssl_get_cipher_methods() 获取

安全建议

  1. 使用强随机密钥和 IV(可通过 random_bytes(32) 生成)
  2. 避免硬编码密钥,建议从环境变量读取
  3. 对加密结果进行 HMAC 验证以确保完整性

其他模式示例

如需使用 ECB 模式(不推荐,仅演示):

aes php实现

$cipher = "aes-256-ecb"; // ECB 模式无需 IV
$encrypted = openssl_encrypt($data, $cipher, $key, OPENSSL_RAW_DATA);

注:ECB 模式安全性较低,推荐优先使用 CBC 或 GCM 模式。

标签: aesphp
分享给朋友:

相关文章

php如何实现直播

php如何实现直播

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

php实现登录

php实现登录

PHP 登录功能实现 数据库连接与用户表创建 创建一个数据库连接文件 db.php,用于管理数据库连接。MySQL 示例代码如下: <?php $host = 'localhost'; $db…

php实现接口

php实现接口

PHP 实现接口的方法 在 PHP 中,接口(Interface)用于定义一组方法的规范,而不实现具体功能。类可以实现一个或多个接口,并必须实现接口中定义的所有方法。 定义接口 接口使用 inter…

php实现博客

php实现博客

使用PHP实现博客系统 数据库设计 创建数据库表存储博客文章和用户信息。常见的表包括posts(文章)和users(用户)。 CREATE TABLE users ( id INT AUTO…

php实现一个

php实现一个

PHP 实现一个简单的计算器 创建一个基本的计算器,支持加、减、乘、除运算。以下是一个完整的实现代码示例: <?php $result = ""; if ($_SERVER["REQUEST_…

php实现注册登录

php实现注册登录

PHP 注册功能实现 创建数据库表(以 MySQL 为例) CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, usern…