Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

php AES完整加密类

作者:金钱打造势力狗。   发布日期:2025-03-03   浏览:1007

下面是一个完整的PHP AES加密类的示例代码:

class AES {
    private $key;
    private $cipher = "AES-128-CBC";

    public function __construct($key) {
        $this->key = $key;
    }

    public function encrypt($data) {
        $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length($this->cipher));
        $encrypted = openssl_encrypt($data, $this->cipher, $this->key, OPENSSL_RAW_DATA, $iv);
        $result = base64_encode($iv . $encrypted);
        return $result;
    }

    public function decrypt($data) {
        $data = base64_decode($data);
        $iv_length = openssl_cipher_iv_length($this->cipher);
        $iv = substr($data, 0, $iv_length);
        $encrypted = substr($data, $iv_length);
        $decrypted = openssl_decrypt($encrypted, $this->cipher, $this->key, OPENSSL_RAW_DATA, $iv);
        return $decrypted;
    }
}

// 示例用法
$key = "mysecretkey";
$aes = new AES($key);

$data = "Hello, World!";
$encrypted = $aes->encrypt($data);
echo "Encrypted: " . $encrypted . "\n";

$decrypted = $aes->decrypt($encrypted);
echo "Decrypted: " . $decrypted . "\n";

在上面的代码中,我们定义了一个AES类,它接受一个密钥作为构造函数的参数。该类包含encryptdecrypt方法,用于加密和解密数据。

encrypt方法中,我们首先生成一个随机的初始化向量(IV),然后使用openssl_encrypt函数对数据进行加密。最后,我们将IV和加密后的数据进行Base64编码,并返回结果。

decrypt方法中,我们首先将输入数据进行Base64解码,然后从解码后的数据中提取IV和加密后的数据。最后,我们使用openssl_decrypt函数对数据进行解密,并返回结果。

在示例用法中,我们创建一个AES实例,并使用密钥mysecretkey对数据进行加密和解密。最后,我们打印加密和解密后的结果。

上一篇:php数据实时性(php 实例)

下一篇:php背景图路径设置(php以图片为背景代码)

大家都在看

php session用法

phpisset函数

php后端

php爬虫框架

php读取csv文件

php 三元表达式

php文件加密

php 拆分字符串

php pcntl

php ||

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站