40 lines
928 B
PHP
40 lines
928 B
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
namespace Fastknife\Utils;
|
|
|
|
/**
|
|
* Class AesUtils
|
|
* @package Fastknife\Utils
|
|
*/
|
|
class AesUtils
|
|
{
|
|
|
|
/**
|
|
* @param $str
|
|
* @param $secretKey string 只有长度等于16位才能与前端CryptoJS加密一致
|
|
* @return string
|
|
*/
|
|
public static function encrypt($str, string $secretKey)
|
|
{
|
|
return base64_encode(openssl_encrypt($str, 'AES-128-ECB', $secretKey, OPENSSL_RAW_DATA));
|
|
|
|
}
|
|
|
|
/**
|
|
* 解密
|
|
* @param $str
|
|
* @param $secretKey string 只有长度等于16位才能与前端CryptoJS加密一致
|
|
* @return string
|
|
*/
|
|
public static function decrypt($str, string $secretKey): string
|
|
{
|
|
$ret = openssl_decrypt(base64_decode($str), 'AES-128-ECB', $secretKey,OPENSSL_RAW_DATA);
|
|
if($ret === false){
|
|
throw new \RuntimeException('请检查密钥是否正确!');
|
|
}
|
|
return $ret;
|
|
}
|
|
|
|
}
|