当前位置:首页 > PHP

php 实现aes

2026-02-14 19:28:05PHP

PHP 实现 AES 加密解密

PHP 提供了内置函数支持 AES 加密算法,常用的模式包括 CBC、ECB 等。以下示例展示如何使用 OpenSSL 扩展实现 AES-256-CBC 加密解密。

加密示例

$plaintext = "需要加密的数据";
$key = openssl_random_pseudo_bytes(32); // AES-256 需要 32 字节密钥
$iv = openssl_random_pseudo_bytes(16); // IV 长度 16 字节

$ciphertext = openssl_encrypt(
    $plaintext,
    'aes-256-cbc',
    $key,
    OPENSSL_RAW_DATA,
    $iv
);

// 通常需要 base64 编码便于存储传输
$encoded = base64_encode($iv.$ciphertext);

解密示例

$decoded = base64_decode($encoded);
$iv = substr($decoded, 0, 16);
$ciphertext = substr($decoded, 16);

$plaintext = openssl_decrypt(
    $ciphertext,
    'aes-256-cbc',
    $key,
    OPENSSL_RAW_DATA,
    $iv
);

注意事项

密钥长度需与算法匹配:AES-128 对应 16 字节,AES-192 对应 24 字节,AES-256 对应 32 字节

IV 应当随机生成且每次加密不同,不要硬编码 IV

存储或传输时需要将 IV 和密文一起保存,通常采用 IV+密文的拼接方式

兼容处理

如需与其它语言交互,需确保双方使用相同的:

php 实现aes

  • 密钥长度
  • 加密模式(如 CBC)
  • 填充方式(OpenSSL 默认 PKCS7)
  • 字符编码(通常 UTF-8)

标签: phpaes
分享给朋友:

相关文章

php实现搜索

php实现搜索

PHP实现搜索功能的方法 在PHP中实现搜索功能通常涉及数据库查询和用户输入的匹配。以下是几种常见的实现方式: 使用MySQL LIKE语句 通过简单的LIKE语句实现基础搜索: $searchT…

php实现推送

php实现推送

PHP 实现推送功能的方法 PHP 实现推送功能可以通过多种方式完成,包括 WebSocket、Server-Sent Events (SSE)、长轮询或第三方推送服务。以下是几种常见的方法: 使用…

php实现的分页

php实现的分页

PHP 实现分页的方法 基本分页逻辑 分页的核心在于计算总页数、当前页码以及数据偏移量。假设每页显示 10 条数据: $current_page = isset($_GET['page']) ? (…

php mvc实现

php mvc实现

PHP MVC 实现步骤 模型(Model)层 模型负责数据处理和业务逻辑,通常与数据库交互。创建一个基类模型,其他具体模型继承它。 class Model { protected $db;…

php https实现

php https实现

PHP 中实现 HTTPS 的方法 在 PHP 中实现 HTTPS 主要通过配置服务器和编写代码来确保通信的安全性。以下是几种常见的方法: 配置服务器支持 HTTPS 确保服务器已安装 SSL/T…

php 实现https

php 实现https

在 PHP 中实现 HTTPS 确保 PHP 应用通过 HTTPS 协议安全传输数据,可以通过以下几种方式实现: 配置服务器强制 HTTPS 在 Web 服务器(如 Apache 或 Nginx)中…