当前位置:首页 > 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);

注意事项

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

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

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

安全建议

使用强随机密钥和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);
}

php实现aes

标签: phpaes
分享给朋友:

相关文章

php实现递归

php实现递归

递归的基本概念 递归是一种函数调用自身的技术,适用于解决可以分解为相同子问题的问题。在PHP中,递归需要明确的终止条件(基线条件),否则会导致无限循环。 递归实现阶乘 阶乘是经典的递归案例,n!…

php实现上传

php实现上传

PHP 文件上传实现 HTML 表单设置 创建一个包含文件上传字段的 HTML 表单,确保表单的 enctype 属性设置为 multipart/form-data,这是文件上传必需的设置。 <…

php实现推送

php实现推送

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

php 实现类

php 实现类

PHP 类的基本实现 在 PHP 中,类通过 class 关键字定义,后跟类名和一对花括号。类名通常遵循大驼峰命名法(如 ClassName)。以下是基本语法: class ClassName {…

php 实现单点登录

php 实现单点登录

PHP 实现单点登录的方法 单点登录(SSO)允许用户通过一次登录访问多个相互信任的系统。以下是基于 PHP 的实现方案: 基于共享 Session 的方案 在同一个主域名下的子域名间可以通过共享…

php mvc实现

php mvc实现

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