4

首先我要提的是我对 Lua 真的很陌生,如果你认为我的问题太愚蠢,请耐心等待

这是我的要求

  • 我需要将 HMAC-sha256 用于 Lightroom 插件开发,因为我将其用于安全性。

我试图使用它但没有运气 https://code.google.com/p/lua-files/wiki/hmac

这些是我遵循的步骤

  1. 获取https://code.google.com/p/lua-files/source/browse/hmac.lua的代码 并在我的插件目录中保存为“hmac.lua”文件
  2. 从此 https://code.google.com/p/lua-files/source/browse/sha2.lua获取代码并保存为“sha2.lua”文件

现在在文件中我像这样使用它

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

--somewhere doend the line inside a function
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 拒绝加载插件,日志上也没有任何内容

非常感谢您的帮助

4

3 回答 3

2

我首先要确保您的代码在 Lightroom 之外工作。您引用的 HMAC 模块似乎还有一些其他依赖项:它需要“glue”、“bit”和“ffi”模块。其中,bitffi是二进制模块,我不确定您是否能够将它们加载到 Lightroom(除非它们已经在那里可用)。无论如何,如果您没有所需的模块并且无法使其在 LR 之外运行而不会出现问题,那么您可能无法使其在 LR 中运行。

于 2014-06-26T03:04:53.323 回答
0

如果您只需要获取 SHA256 哈希,有一种方法可以做到这一点 Lightroom

我在这里发布了我的问题并能够得到答案。但是在 SDK 文档(Lightroom SDK)上没有提到这个

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

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

于 2014-06-27T02:41:17.710 回答
0

花了很长时间试图找到解决方案:-/ LrDigest 没有记录,感谢 Adob ​​e !解决方案:

local LrDigest = import "LrDigest"
LrDigest.HMAC.digest(string, 'SHA256', key)
于 2015-10-14T13:55:09.113 回答