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

迅睿框架 更新 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插件没有预留这方面的选项

迅睿系统漏洞

AI文章生成器
AI文章生成器(2026-10-29)
任务插图设置数量
Bing站长数据
Bing站长数据(2026-10-29)
根据BING接口调整菜单 各个页面数据支持点击查看详情
泛解析站群系统
泛解析站群系统(2026-10-29)
AI队列增加清空按钮 表单提示语收敛 目录模式不接管主域名模板
域名授权系统
域名授权系统(2026-10-28)
后台增加前台访问地址链接
GeoSeo收录宝
GeoSeo收录宝(2026-10-28)
1 优化 BreadcrumbList 前端输出item细节 ...
关键词TAG
关键词TAG(2026-10-28)
[高级版]增加补录索引生成按钮 [高级版]针对建站系统高级版进行查询...
后台内容复制
后台内容复制(2026-10-28)
模块表单复制成功后返回到对应内容的表单列表中
问答插件
问答插件(2026-10-27)
问答插件基于官网「开源社区」功能分发而来,支持悬赏贴功能,微信通知。...
CMS内容收藏
CMS内容收藏(2026-10-27)
自动清理已失效的文章数据