chore: 重写初始提交(清空历史,整理后全量提交)
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | YwxApp [ WE CAN DO IT JUST THINK ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2026-2036 http://ywxapp.cn All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: ywxapp<admin@ywxapp.cn>
|
||||
// +----------------------------------------------------------------------
|
||||
// server/utils/AesUtil.php
|
||||
|
||||
namespace ywxapp\utils;
|
||||
|
||||
/**
|
||||
* AesUtil 类
|
||||
*
|
||||
* @author ywxapp <admin@ywxapp.cn>
|
||||
*/
|
||||
class AesUtil
|
||||
{
|
||||
private const METHOD = 'aes-256-cbc';
|
||||
private static $key;
|
||||
private static $iv;
|
||||
|
||||
|
||||
public static function setKeyAndIv(string $key, string $iv)
|
||||
{
|
||||
if (strlen($key) !== 32) throw new \Exception("AES Key 必须为32字节");
|
||||
if (strlen($iv) !== 16) throw new \Exception("AES IV 必须为16字节");
|
||||
self::$key = $key;
|
||||
self::$iv = $iv;
|
||||
}
|
||||
|
||||
|
||||
public static function encrypt(string $plaintext): string
|
||||
{
|
||||
$encrypted = openssl_encrypt(
|
||||
$plaintext,
|
||||
self::METHOD,
|
||||
self::$key,
|
||||
OPENSSL_RAW_DATA,
|
||||
self::$iv
|
||||
);
|
||||
return base64_encode($encrypted);
|
||||
}
|
||||
|
||||
|
||||
public static function decrypt(string $ciphertext): string
|
||||
{
|
||||
$data = base64_decode($ciphertext);
|
||||
$result = openssl_decrypt(
|
||||
$data,
|
||||
self::METHOD,
|
||||
self::$key,
|
||||
OPENSSL_RAW_DATA,
|
||||
self::$iv
|
||||
);
|
||||
if ($result === false) throw new \Exception("AES 解密失败");
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user