如何在Lua中使用HMAC-Lightroom插件。

首先我必须提到,我对 Lua 真的是很新,如果你认为我的问题太愚蠢,请耐心等待。

这是我的要求:

  • 我需要在 Lightroom 插件开发中使用 HMAC-sha256,因为我正在使用它进行安全验证。

我试图使用这个但没有成功 https://code.google.com/p/lua-files/wiki/hmac

这些是我遵循的步骤:

现在在文件中我是这样使用的:

local hmac = require'hmac'
local sha2 = require'sha2'

--在某个函数中间
local hashvalue = hmac.sha2('key', 'message')

但不幸的是,这不起作用,我不确定我做错了什么。有人能告诉我我在这里做错了什么吗?或者有没有更简单更好的方法来做到这一点,并给出一个好的例子。

编辑: 我这样做是为了得到结果。当我包含那段代码时,插件会停止工作。当我这样做时,无法获得输出字符串。

hashvalue = hmac.sha2('key', 'message')

local LrLogger = import 'LrLogger'
myLogger = LrLogger('FlaggedFiles')
myLogger:enable("logfile")
myLogger:trace ("=========================================\n")
myLogger:trace ('Winter is coming, ' .. hashvalue)
myLogger:trace ("=========================================\n")

而且,Lightroom 拒绝加载插件,日志中也没有任何内容。

非常感谢您的帮助。

点赞
用户1442917
用户1442917

我会先确保你的代码在 Lightroom 外能够正常运行。看起来,你引用的 HMAC 模块有一些其他依赖项:它需要“glue”、“bit”和“ffi”模块。其中,bitffi 是二进制模块,我不确定你是否能够将它们加载到 Lightroom 中(除非它们已经可用)。总之,如果你没有必需的模块,而且在 Lightroom 外无法正常运行,那么你很可能无法在 LR 中使其运行。

2014-06-26 03:04:53
用户545697
用户545697

如果您只需要获取SHA256哈希值,则可以在Lightroom中执行此操作。

我在[这里](https://forums.adobe.com/thread/1233537?TSTART = 0)发表了我的问题,并且得到了答案。但是,在SDK文档(Lightroom SDK)中没有关于此的参考。

local sha = import 'LrDigest'
d = sha.SHA256.digest ("Hello world")

但不幸的是,没有HMAC,因此我决定使用带有盐的md5,因为这占用了我太多的时间。

2014-06-27 02:41:17
用户832965
用户832965

花了相当长的时间尝试找到一个解决方案:-/ LrDigest没有文档,感谢Adobe! 解决方案:

local LrDigest = import "LrDigest"
LrDigest.HMAC.digest(string, 'SHA256', key)
2015-10-14 13:55:09