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

如何将解码后的嵌套PHP代码重新编码回原格式?

嵌套PHP编码无法还原的问题解决方法

先拆解原解码流程(从内到外执行):

$code → strrev() → base64_decode() → gzuncompress() → gzinflate() → gzuncompress() → gzinflate() → gzuncompress() → gzinflate() → gzuncompress() → gzinflate() → str_rot13()

你的编码代码存在三个核心问题:

  • strrev()未传入目标内容:你写的strrev()是空调用,必须传入要处理的原始字符串
  • 压缩函数顺序颠倒:解码时是先gzuncompress再gzinflate,逆过程要先执行gzinflate的反向操作gzdeflate,再执行gzuncompress的反向操作gzcompress,你搞反了两者顺序
  • 步骤逻辑不符合逆流程:编码需要完全反向解码的执行顺序,不能直接照搬解码的函数嵌套顺序

正确的编码代码(假设原始内容存储在$original变量中):

$code = strrev(
    base64_encode(
        gzcompress(gzdeflate(
            gzcompress(gzdeflate(
                gzcompress(gzdeflate(
                    gzcompress(gzdeflate(
                        str_rot13($original)
                    ))
                ))
            ))
        ))
    )
);

关键逻辑验证:

  1. 原始内容先执行str_rot13(该算法是自逆的,解码最后一步用它,编码第一步也用它)
  2. 四次循环执行gzdeflate→gzcompress,完全对应解码时gzuncompress→gzinflate的逆过程
  3. 最后执行base64_encode→strrev,对应解码时strrev→base64_decode的逆过程

注意:gzcompress/gzuncompress处理zlib格式数据,gzdeflate/gzinflate处理deflate格式数据,两者的嵌套顺序必须严格对应逆流程,否则无法正确还原。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 16:22:19