当前位置:首页 > PHP

aes php实现

2026-02-28 11:58:04PHP

AES 加密在 PHP 中的实现

PHP 提供了内置函数 openssl_encryptopenssl_decrypt 来支持 AES 加密。以下是具体实现方法:

加密方法

$plaintext = "需要加密的数据";
$key = "16字节或32字节密钥"; // AES-128 需 16 字节,AES-256 需 32 字节
$iv = openssl_random_pseudo_bytes(16); // 初始化向量
$ciphertext = openssl_encrypt(
    $plaintext,
    'AES-256-CBC', // 算法模式
    $key,
    OPENSSL_RAW_DATA,
    $iv
);
$encrypted = base64_encode($iv . $ciphertext);

解密方法

$encrypted = "base64编码的加密数据";
$data = base64_decode($encrypted);
$iv = substr($data, 0, 16);
$ciphertext = substr($data, 16);
$plaintext = openssl_decrypt(
    $ciphertext,
    'AES-256-CBC',
    $key,
    OPENSSL_RAW_DATA,
    $iv
);

密钥生成方法

安全密钥应通过密码学安全方式生成:

$key = openssl_random_pseudo_bytes(32); // 生成 32 字节随机密钥
$keyHex = bin2hex($key); // 转换为十六进制字符串

注意事项

加密模式推荐使用 CBC 或 GCM 模式。ECB 模式不安全,应避免使用。

IV(初始化向量)必须随机且每次加密都不同,长度应与块大小一致(AES 为 16 字节)。

密钥长度决定加密强度:AES-128 使用 16 字节密钥,AES-256 使用 32 字节密钥。

aes php实现

加密后的数据通常需要 base64 编码以便存储或传输。

标签: aesphp
分享给朋友:

相关文章

php实现表单

php实现表单

PHP 表单基础实现 创建一个简单的 PHP 表单需要 HTML 表单结构和 PHP 处理脚本。以下是一个完整的示例: HTML 表单部分 (form.html) <form action=…

php如何实现直播

php如何实现直播

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

php实现登录

php实现登录

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

php 实现验证码

php 实现验证码

使用 PHP 生成验证码 验证码(CAPTCHA)用于防止自动化脚本提交表单,以下是几种常见的 PHP 实现方法。 使用 GD 库生成图片验证码 GD 库是 PHP 的图像处理扩展,可用于生成验证码…

php实现下载

php实现下载

PHP实现文件下载 使用PHP实现文件下载可以通过设置HTTP头部信息强制浏览器下载文件而非直接打开。以下是几种常见的方法: 方法一:直接输出文件内容 $file_path = 'path/to/…

php实现定时

php实现定时

PHP 实现定时任务的方法 PHP 本身是脚本语言,通常需要借助外部工具或框架实现定时任务。以下是几种常见方法: 使用 Cron 任务 Linux 系统自带的 Cron 是常用的定时任务工具。通过编…