You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何按指定解码规则反向实现base64编码得到字符串cnGu[R>>

问题原因

你的编码逻辑存在两处错误:

  • 执行顺序颠倒:解码流程是「自定义字符处理→base64解码」,反向编码需要按相反顺序执行,即「base64编码→自定义字符处理」
  • 自定义处理逻辑反向:原fn_one是将每个字符的ASCII值减1,编码时需要执行逆操作,将每个字符的ASCII值加1

正确实现代码

// 原解码用自定义函数
function fn_one($a){
    $c='';
    for ($i=0;$i < strlen($a);$i++) {
        $b=ord($a[$i]);
        $c.=chr(--$b);
    }
    return $c;
}

// 新增编码用逆操作函数
function fn_one_reverse($a){
    $c='';
    for ($i=0;$i < strlen($a);$i++) {
        $b=ord($a[$i]);
        $c.=chr(++$b);
    }
    return $c;
}

// 编码逻辑,兼容你原有的call_user_func写法也可直接调用函数
$plaintext = "name";
$encode = call_user_func("fn_one_reverse", call_user_func("base64_encode", $plaintext));
echo $encode; // 输出结果为:cnGu[R>>

// 可验证解码逻辑匹配原有逻辑
$decode = call_user_func("base64_decode", call_user_func("fn_one", $encode));
echo $decode; // 输出结果为:name

内容的提问来源于stack exchange,提问作者kenlly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 08:21:01