作者:糖果

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:转载到其它平台请注明作者姓名及原文链接,请勿用于商业用途。