我正在尝试按照自述文件中的说明进行操作:https://github.com/zhaozg/lua-openssl
这是我正在运行的基本程序:
openssl = require 'openssl'
inspect = require 'inspect'
print(inspect(openssl.cipher))
只有"nil"被打印到终端。
如果我尝试检查"openssl"对象,我会得到以下输出:
{
NO_IDEA = true,
NO_MD2 = true,
NO_MDC2 = true,
NO_RC5 = true,
NO_SCTP = true,
SHLIB_VERSION_HISTORY = "",
SHLIB_VERSION_NUMBER = "1.1",
SSLEAY_BUILT_ON = 2,
SSLEAY_CFLAGS = 1,
SSLEAY_DIR = 4,
SSLEAY_PLATFORM = 3,
SSLEAY_VERSION = 0,
SSLEAY_VERSION_NUMBER = 269484159,
VERSION_NUMBER = 269484159,
VERSION_TEXT = "OpenSSL 1.1.0g 2 Nov 2017",
version = <function 1>
}
有什么想法吗?我做错了什么?
系统附带的版本可能还没有密码模块,或者可能是 openssl 的另一个绑定。
检查您的版本在lua openssl所在的文件夹中的模块,在我的系统中是/usr/local/share/lua/5.1/openssl/
,文件夹外还有一个文件/usr/local/share/lua/5.1/openssl.lua
和共享对象在/usr/local/lib/lua/5.1/_openssl.so
但在您的文件中可能会有所不同。
将这些文件备份到另一个地方以确保。删除它们并使用 luarocks 安装最新版本。
luarocks install openssl
Luarocks 可能会在/usr/local/lib/lua/5.1/
中安装新的共享对象。如果安装的模块名称中的版本为openssl_0_7_7_0-openssl.so
将其重命名为openssl.so
.