Lua的MD5库
作者:糖果
crypto.evp也支持md5,因环境问题,我们采用md5。
第一:安装。
sudo luarocks install md5
第二:测试
test.lua
md5=require"md5"
val = md5.sumhexa("test string")
print(val)
目前来看,这个md5库比较稳定,可以优先选择。
第三:注意的地方
如何在解释器(在命令行中,直接输入lua)
md5=require"md5"
在引用的时候,不要写成 local md5=require"md5"。
因为lua local变量的作用域,生存周期的问题,这样声明,在下一 行 “>print(md)"
得到的结果是nil,显而易见的是,如果nil,后面的调用都没法进行了。
没有local修饰 md5:md5=require"md5"
md5打印出来,才是一个table类型的值,之后的sumhexa才可成功调用。
底层调用的如下:
/usr/local/lib/lua/5.1/md5/core.so
在centos上,安装core.so、des56.so的位置是
/usr/lib/lua/5.1/md5
md5.lua
/usr/local/share/lua/5.1
centos比较麻烦,推荐使用ubuntu
最后如果遇到复杂的环境问题,就将md5.lua des56.so core.so 复制到当前目录(luarocks install md5产生,也有可能luarocks安装后不生md5.lua,这种就luarocks在centos上的bug,因为.lua是源主件,直接从别的机器制过来…)
PS:转载到其它平台请注明作者姓名及原文链接,请勿用于商业用途。