当前位置:首页 > PHP

php 实现aes

2026-01-29 21:35:43PHP

AES 加密实现

在 PHP 中实现 AES 加密可以使用 openssl_encryptopenssl_decrypt 函数。以下是 AES-256-CBC 模式的示例代码:

$plaintext = "This is a secret message";
$key = openssl_random_pseudo_bytes(32); // 256-bit key
$iv = openssl_random_pseudo_bytes(16); // 128-bit IV

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

// 解密
$decrypted = openssl_decrypt(
    $ciphertext,
    'aes-256-cbc',
    $key,
    OPENSSL_RAW_DATA,
    $iv
);

echo "Original: $plaintext\n";
echo "Decrypted: $decrypted\n";

密钥和 IV 生成

安全地生成密钥和初始化向量 (IV) 是 AES 加密的关键:

php 实现aes

// 生成 256 位 (32 字节) 随机密钥
$key = bin2hex(openssl_random_pseudo_bytes(32));

// 生成 128 位 (16 字节) 随机 IV
$iv = bin2hex(openssl_random_pseudo_bytes(16));

存储加密数据

加密后的数据通常以 Base64 编码存储:

$encrypted = openssl_encrypt(
    $data,
    'aes-256-cbc',
    $key,
    OPENSSL_RAW_DATA,
    $iv
);

$storable = base64_encode($encrypted);

解密存储的数据

从存储格式解密数据:

php 实现aes

$encrypted = base64_decode($storable);
$decrypted = openssl_decrypt(
    $encrypted,
    'aes-256-cbc',
    $key,
    OPENSSL_RAW_DATA,
    $iv
);

其他 AES 模式

PHP 支持多种 AES 加密模式:

// AES-128-CBC
openssl_encrypt($data, 'aes-128-cbc', $key, OPENSSL_RAW_DATA, $iv);

// AES-256-GCM (需要 PHP 7.1+)
openssl_encrypt($data, 'aes-256-gcm', $key, OPENSSL_RAW_DATA, $iv, $tag);

安全注意事项

确保密钥和 IV 的安全存储,每次加密使用不同的 IV。对于密码加密,考虑使用专门的密码哈希函数如 password_hash 而非 AES。

以上代码提供了 PHP 中实现 AES 加密的基本方法,可根据具体需求调整加密模式和参数。

标签: phpaes
分享给朋友:

相关文章

php怎么实现登录功能

php怎么实现登录功能

数据库准备 创建用户表存储登录信息,通常包括用户名、密码(需加密)等字段。示例SQL: CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY…

php 链表实现

php 链表实现

在 PHP 中实现链表可以通过类来模拟链表节点(Node)和链表(LinkedList)结构。以下是链表的完整实现示例,包含基础操作如插入、删除、遍历等。 链表节点类(Node) 链表的基本单元是节…

php底层实现

php底层实现

PHP底层实现的核心机制 PHP是一种解释型脚本语言,其底层实现涉及多个关键组件协同工作。理解这些机制有助于优化代码性能和深度调试。 Zend引擎架构 Zend引擎是PHP的核心执行器,采用编译器与…

php实现区块链

php实现区块链

PHP 实现区块链的基本步骤 PHP 可以用于实现一个简单的区块链系统,以下是关键步骤和代码示例: 区块类实现 创建一个 Block 类来表示区块链中的单个区块: class Block {…

php实现计算器

php实现计算器

基本计算器实现 使用PHP创建一个简单的计算器可以通过HTML表单接收用户输入,PHP处理计算逻辑。以下是一个基础实现示例: HTML表单部分 (calculator.html) <form…

php实现无限级分类

php实现无限级分类

无限级分类的实现方法 无限级分类通常用于构建树形结构数据,如商品分类、地区选择等。以下是几种常见的实现方式: 递归实现法 递归是最直观的实现方式,通过函数自身调用来处理子分类: function…