当前位置:首页 > PHP

php实现aes

2026-02-14 07:59:49PHP

PHP实现AES加密解密

AES(高级加密标准)是一种对称加密算法,常用于数据加密。PHP通过openssl扩展提供了AES加密支持。

AES加密示例代码

function encryptAES($data, $key, $iv) {
    $cipher = "aes-256-cbc";
    $options = OPENSSL_RAW_DATA;
    $encrypted = openssl_encrypt($data, $cipher, $key, $options, $iv);
    return base64_encode($encrypted);
}

AES解密示例代码

function decryptAES($encryptedData, $key, $iv) {
    $cipher = "aes-256-cbc";
    $options = OPENSSL_RAW_DATA;
    $decrypted = openssl_decrypt(base64_decode($encryptedData), $cipher, $key, $options, $iv);
    return $decrypted;
}

使用方法

$key = "0123456789abcdef0123456789abcdef"; // 32字节密钥
$iv = "1234567890abcdef"; // 16字节初始化向量
$data = "需要加密的数据";

$encrypted = encryptAES($data, $key, $iv);
$decrypted = decryptAES($encrypted, $key, $iv);

注意事项

密钥长度必须与选择的算法匹配:

php实现aes

  • AES-128需要16字节密钥
  • AES-192需要24字节密钥
  • AES-256需要32字节密钥

初始化向量(IV)必须是16字节长。可以使用openssl_random_pseudo_bytes(16)生成随机IV。

php实现aes

安全建议

使用强随机密钥和IV,每次加密使用不同的IV。考虑使用PBKDF2或类似算法从密码派生密钥。

其他加密模式

除了CBC模式,还可以选择其他模式如GCM(提供认证加密):

function encryptAESGCM($data, $key) {
    $cipher = "aes-256-gcm";
    $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length($cipher));
    $tag = "";
    $encrypted = openssl_encrypt($data, $cipher, $key, OPENSSL_RAW_DATA, $iv, $tag);
    return base64_encode($iv.$tag.$encrypted);
}

标签: phpaes
分享给朋友:

相关文章

php实现websocket

php实现websocket

PHP 实现 WebSocket WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。PHP 可以通过多种方式实现 WebSocket 功能,以下是几种常见的方法: 使用 Ratc…

php实现即时通讯

php实现即时通讯

PHP 实现即时通讯的方案 即时通讯(IM)可以通过多种方式实现,PHP 作为服务器端语言,通常需要结合前端技术(如 WebSocket、AJAX)或第三方服务来实现实时通信。以下是几种常见的实现方式…

php 实现排序

php 实现排序

PHP 实现数组排序的方法 PHP 提供了多种内置函数和方法来实现数组排序,适用于不同的排序需求。以下是一些常见的排序实现方式: 使用 sort() 函数对数组进行升序排序 sort() 函数对数组…

php搜索功能实现的

php搜索功能实现的

PHP 搜索功能实现方法 数据库搜索实现 使用 SQL 的 LIKE 语句进行模糊匹配,适用于小型网站和简单搜索需求。 $searchTerm = $_GET['search']; $query =…

php实现登陆

php实现登陆

PHP 实现登录功能 创建登录表单 在 HTML 文件中创建一个登录表单,包含用户名和密码输入框,表单的 action 属性指向处理登录的 PHP 文件。 <form action="logi…

php mvc 实现

php mvc 实现

PHP MVC 实现方法 MVC(Model-View-Controller)是一种设计模式,用于分离应用程序的逻辑、数据和界面。以下是实现PHP MVC框架的关键步骤。 目录结构 创建以下目录结构…