c语言编程笔录

首页 >   > 笔记大全

笔记大全

一文详解PHP怎样实现AES-128-CBC-PKCS5Padding加密

更新时间:2023-09-26

前言

PHP是一种广泛用于Web开发的脚本语言,提供了丰富的加密算法库。本文将介绍如何使用PHP实现AES-128-CBC-PKCS5Padding加密算法。

代码实现

首先,需要确保你的PHP安装了OpenSSL扩展。接下来,我们将逐步实现AES-128-CBC-PKCS5Padding加密算法。

// 生成16字节的随机初始化向量(IV)
$iv = openssl_random_pseudo_bytes(16);

// 设置加密算法、密钥和初始化向量
$cipher = "AES-128-CBC";
$key = "your_key_here";

// 加密函数
function encrypt($data) {
    global $cipher, $key, $iv;
    $encrypted = openssl_encrypt($data, $cipher, $key, OPENSSL_RAW_DATA, $iv);
    return base64_encode($iv . $encrypted);
}

// 解密函数
function decrypt($encryptedData) {
    global $cipher, $key;
    $data = base64_decode($encryptedData);
    $iv = substr($data, 0, 16);
    $encrypted = substr($data, 16);
    return openssl_decrypt($encrypted, $cipher, $key, OPENSSL_RAW_DATA, $iv);
}

代码解释

上述代码中,我们首先使用openssl_random_pseudo_bytes函数生成一个长度为16字节的随机初始化向量(IV)。

然后,我们设置了要使用的加密算法为AES-128-CBC,密钥为your_key_here(请替换为你自己的密钥)。

接下来,我们定义了encrypt函数和decrypt函数来实现加密和解密操作。

encrypt函数中,我们使用openssl_encrypt函数进行加密,并将IV和加密后的数据进行Base64编码后返回。

decrypt函数中,我们首先对传入的密文进行Base64解码,然后使用IV和openssl_decrypt函数进行解密,并返回原始明文。

总结

使用以上代码,你可以方便地在PHP中实现AES-128-CBC-PKCS5Padding加密算法。确保将密钥替换为你自己的安全密钥,并根据需要修改加密算法和其他相关参数。