当前位置:首页 > 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);
}

解密函数

php实现aes

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() 生成。

php实现aes

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

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

解密时拆分 IV 和密文:

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

标签: phpaes
分享给朋友:

相关文章

php如何实现直播

php如何实现直播

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

php 登录实现

php 登录实现

PHP 登录实现 PHP 登录功能通常包括用户认证、会话管理和安全性措施。以下是实现 PHP 登录功能的关键步骤。 数据库准备 创建一个用户表存储用户信息,通常包括用户名、密码(加密存储)和其他必要…

php实现mysql

php实现mysql

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

php实现文件的下载

php实现文件的下载

PHP 实现文件下载的方法 在 PHP 中实现文件下载功能通常需要设置正确的 HTTP 头信息,并输出文件内容。以下是几种常见的实现方式: 使用 header() 函数强制下载 通过设置 Conte…

php 实现单链表

php 实现单链表

单链表的基本概念 单链表是一种线性数据结构,由节点组成,每个节点包含数据域和指向下一个节点的指针域。链表的头节点是访问整个链表的入口。 单链表的节点类实现 在PHP中,可以通过类来定义链表节点。每个…

php 伪静态实现

php 伪静态实现

PHP 伪静态实现方法 伪静态(URL Rewrite)是一种通过服务器配置将动态URL转换为静态URL的技术,提升URL的可读性和SEO效果。以下是几种常见的实现方式: 使用Apache的mod_…