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