当前位置:首页 > PHP

php实现aes加密

2026-01-29 01:33:33PHP

PHP 实现 AES 加密

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

php实现aes加密

加密示例代码

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

php实现aes加密

$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(推荐,提供认证加密)

标签: phpaes
分享给朋友:

相关文章

php实现的进度条

php实现的进度条

PHP 实现的进度条方法 在 PHP 中实现进度条通常可以通过命令行脚本(CLI)或 Web 页面两种方式完成。以下是几种常见的实现方法: 命令行进度条 使用 PHP CLI 实现进度条,可以通过不…

php 伪静态实现

php 伪静态实现

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

php 实现排名

php 实现排名

PHP 实现排名的方法 在 PHP 中实现排名功能通常涉及对数据进行排序、计算排名以及输出结果。以下是几种常见的实现方式: 基本数组排序排名 $scores = [85, 92, 78, 95, 8…

php无法实现的

php无法实现的

PHP 的局限性 PHP 是一种广泛使用的服务器端脚本语言,主要用于 Web 开发。尽管功能强大,但在某些场景下存在局限性。 操作系统级开发 PHP 不适合编写操作系统内核或底层驱动程序。这类任务通…

php实现异步图片上传

php实现异步图片上传

异步图片上传的实现方法 在PHP中实现异步图片上传通常需要结合前端JavaScript和后端PHP代码。以下是几种常见的方法: 使用XMLHttpRequest或Fetch API 前端使用Java…

php 实现扫码登录

php 实现扫码登录

PHP 实现扫码登录的流程 扫码登录的核心流程分为两部分:前端生成二维码并轮询状态,后端验证扫码状态并返回登录凭证。以下是具体实现方法: 生成唯一二维码 创建临时令牌 在用户访问登录页面时,后端生…