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

如何编写Lua函数实现十六进制加密字符串的逆向还原?

逆向函数实现方案

原代码的核心逻辑是将每个字符转换为两位大写十六进制字符串(不足两位时补前导零),再拼接成完整的加密串。逆向函数需要做的就是把这个加密串按两位一组拆分,将每组十六进制值还原为对应的ASCII字符。

逆向代码实现

function hexToStr(hexStr)
    local result = ""
    -- 按两位一组匹配十六进制字符
    hexStr:gsub("%x%x", function(hex)
        -- 将十六进制字符串转为十进制,再转成对应字符
        result = result .. string.char(tonumber(hex, 16))
    end)
    return result
end

-- 测试示例:用原代码的输出作为输入
local encrypted = "417574682D2B2D5354344646"
print(hexToStr(encrypted)) -- 输出:Auth-+-ST4FF

代码说明

  • %x%x 是Lua正则表达式,匹配任意两位十六进制字符(兼容大小写,无论原加密串是大写还是小写都能处理)
  • tonumber(hex, 16) 将两位十六进制字符串转为十进制数字,对应字符的ASCII码
  • string.char() 将ASCII码转换为对应的字符,最终拼接成原始字符串

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 19:15:11