业务经理

微信扫描以上二维码

028-61286886

技术咨询

后台编辑器加密、解密,前台解密

迅睿框架 更新 2026-09-14 17:08:13 哈哈大王

function my_aes_encode($str, $key, $method)
{
    if ($str === '') return ''; // 空内容直接返回,不加密
    $iv = random_bytes(openssl_cipher_iv_length($method));
    $enc = openssl_encrypt($str, $method, $key, OPENSSL_RAW_DATA, $iv);
    // iv + 密文,base64存储
    return base64_encode($iv . $enc);
}
// AES解密函数
function my_aes_decode($cipher, $key, $method)
{
    if (empty($cipher)) return '';
    $data = base64_decode($cipher);
    if ($data === false) return $cipher; // base64解析失败,原样返回兼容旧明文
    $ivLen = openssl_cipher_iv_length($method);
    if (strlen($data) <= $ivLen) return $cipher;
    $iv = substr($data, 0, $ivLen);
    $c = substr($data, $ivLen);
    $plain = openssl_decrypt($c, $method, $key, OPENSSL_RAW_DATA, $iv);
    return $plain === false ? $cipher : $plain;
}

// 保存前加密
\Phpcmf\Hooks::app_on('news', 'module_content_before', function ($data) use ($aesKey, $aesMethod) {
    $field = 'content';

    // 只处理非空内容
    if (isset($data[0][$field])) {
        $data[0][$field] = my_aes_encode($data[0][$field], $aesKey, $aesMethod);
    }
    return dr_return_data(1, '', $data);
});

config/hook.php 加密实现了,数据库也是加密的密文,在后台编辑时怎么解密。还有在前台怎么解密

方案

  • 社区管理员 #1 · 2026-09-14 17:08:13
    目前cms插件没有预留这方面的选项

迅睿系统漏洞

站群分站系统
站群分站系统(2026-10-15)
子站域名新增llms.txt访问
GEO系统
GEO系统(2026-10-14)
修复下载zip空白地址问题 修复流量复刻和任务队列错误
GeoSeo收录宝
GeoSeo收录宝(2026-10-14)
新增 站长工具箱 前端首页自动调用meta 数据
滑块验证码 Gocaptcha
滑块验证码 Gocaptcha(2026-10-13)
基于开源项目 go-captcha 的行为验证码插件,滑动拼图、区域...
GeoSeo工具箱
GeoSeo工具箱(2026-10-13)
优化巡检任务
GeoSeo排名助手
GeoSeo排名助手(2026-10-11)
加入大模型自定义
SEO聚合关键字
SEO聚合关键字(2026-10-11)
优化关键字列表页最多支持1万篇文章,过多会导致服务器扛不住;
CMS内容同步复制
CMS内容同步复制(2026-10-10)
增加时间是否更新的开关