您的位置:首页 > 编程语言 > Lua

lua语言中十六进制字符串转换为二进制字符串的方法

2016-07-06 23:11 501 查看
今天在用openresty处理AES解密的时候,发现lua-resty-string插件中aes.lua的函数decrypt(str)必须保证是二进制字符串,而针对十六进制字符串则无法解析,上网找了半天,发现很多十六进制转二进制字符串的函数其实效果都不好,结合他们的函数自己修改了一下。function hex2bin( hexstr )
local str = ""
for i = 1, string.len(hexstr) - 1, 2 do
local doublebytestr = string.sub(hexstr, i, i+1);
local n = tonumber(doublebytestr, 16);
if 0 == n then
str = str .. '\00'
else
str = str .. string.format("%c", n)
end
end
return str
end

这段函数还有改进的地方,有时间可以想想怎么依靠ffi来处理,效率更高
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  函数 lua 解密