OpenWrt中 Lua 支持MD5
openwrt中的lua默认是不支持md5的,主要是在编译的时候没有添加支持 lua-md5 选项,下面介绍一下如何在openwrt系统的lua中使用md5。
编译选项
编译选项添加完城后,保存为 .config ,重新编译
lua-md5 使用
编译完成后,会在系统的 /usr/lib/lua/ 路径下生成有 md5.lua 和 md5/core.so 文件。
其中 md5.lua 中封装了一个生成md5码的函数,如下。
----------------------------------------------------------------------------
-- $Id: md5.lua,v 1.4 2006/08/21 19:24:21 carregal Exp $
----------------------------------------------------------------------------
local core
local string = string or require"string"
if string.find(_VERSION, "Lua 5.0") then
local cpath = os.getenv"LUA_CPATH" or "/usr/local/lib/lua/5.0/"
core = loadlib(cpath.."md5/core.so", "luaopen_md5_core")()
else
core = require"md5.core"
end
----------------------------------------------------------------------------
-- @param k String with original message.
-- @return String with the md5 hash value converted to hexadecimal digits
function core.sumhexa (k)
k = core.sum(k)
return (string.gsub(k, ".", function (c)
return string.format("%02x", string.byte(c))
end))
end
return core
该文件如何使用呢?这其实可以当做一个lua模块,后面只需要在需要生成md5码的lua文件中调用该模块即可。
md5 = require("md5")
local strings= "hellomd5lua"
print(md5.sumhexa(strings))
root@QWER:/tmp# lua md5test.lua
1c44d4769b5c0b8eeaa173c16b6200b2