当前位置:首页 > PHP

aes php实现

2026-02-28 11:58:04PHP

AES 加密在 PHP 中的实现

PHP 提供了内置函数 openssl_encryptopenssl_decrypt 来支持 AES 加密。以下是具体实现方法:

加密方法

$plaintext = "需要加密的数据";
$key = "16字节或32字节密钥"; // AES-128 需 16 字节,AES-256 需 32 字节
$iv = openssl_random_pseudo_bytes(16); // 初始化向量
$ciphertext = openssl_encrypt(
    $plaintext,
    'AES-256-CBC', // 算法模式
    $key,
    OPENSSL_RAW_DATA,
    $iv
);
$encrypted = base64_encode($iv . $ciphertext);

解密方法

aes php实现

$encrypted = "base64编码的加密数据";
$data = base64_decode($encrypted);
$iv = substr($data, 0, 16);
$ciphertext = substr($data, 16);
$plaintext = openssl_decrypt(
    $ciphertext,
    'AES-256-CBC',
    $key,
    OPENSSL_RAW_DATA,
    $iv
);

密钥生成方法

安全密钥应通过密码学安全方式生成:

$key = openssl_random_pseudo_bytes(32); // 生成 32 字节随机密钥
$keyHex = bin2hex($key); // 转换为十六进制字符串

注意事项

加密模式推荐使用 CBC 或 GCM 模式。ECB 模式不安全,应避免使用。

aes php实现

IV(初始化向量)必须随机且每次加密都不同,长度应与块大小一致(AES 为 16 字节)。

密钥长度决定加密强度:AES-128 使用 16 字节密钥,AES-256 使用 32 字节密钥。

加密后的数据通常需要 base64 编码以便存储或传输。

标签: aesphp
分享给朋友:

相关文章

php实现文件的下载

php实现文件的下载

PHP 实现文件下载的方法 在 PHP 中实现文件下载功能通常需要设置正确的 HTTP 头信息,并输出文件内容。以下是几种常见的实现方式: 使用 header() 函数强制下载 通过设置 Conte…

php 实现排序

php 实现排序

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

php搜索功能实现

php搜索功能实现

实现基本的PHP搜索功能 使用MySQL数据库和PHP实现简单的关键词搜索功能。需要确保数据库中有可供搜索的表和数据。 // 连接数据库 $conn = new mysqli('localhost'…

php 实现单点登录

php 实现单点登录

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

php实现抽奖程序

php实现抽奖程序

PHP实现抽奖程序 基本抽奖逻辑 创建一个简单的抽奖程序需要定义奖品、中奖概率及随机选择逻辑。以下是一个基础实现示例: <?php // 奖品配置(奖品名称 => 概率) $prizes…

php实现单例模式

php实现单例模式

单例模式的概念 单例模式是一种创建型设计模式,确保一个类只有一个实例,并提供一个全局访问点。这种模式常用于数据库连接、日志记录器等需要全局唯一实例的场景。 PHP实现单例模式的关键步骤 私有化构造函…