2014-06-24 93 views
4

第一件事我不得不提的是,我真的很新的Lua,如果你认为我的问题太愚蠢,请耐心等待如何使用HMAC在Lua - Lightroom的插件

这里是我的要求

  • 我需要使用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得到了代码,并保存为as'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中拒绝加载插件并没有什么上的日志,以及

非常感谢您的帮助

回答

2

我首先确保你的代码在Lightroom之外工作。看起来你引用的HMAC模块有一些其他的依赖关系:它需要“glue”,“bit”和“ffi”模块。其中,bitffi是二进制模块,我不确定您能否将它们加载到Lightroom中(除非它们已经在那里可用)。无论如何,如果你没有所需的模块,并且不能在没有LR以外的问题的情况下运行它,你可能无法使它在LR中运行。

0

如果你只需要得到SHA256哈希是有办法做到这一点的Lightroom

我贴我的问题here,并能得到答案。但有没有关于SDK文档没有这方面的参考(Lightroom的SDK)

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

但遗憾的是没有HMAC,所以我决定用MD5与盐,因为这是服用了过多的时间

0

花了相当一段时间试图找到一个解决方案: -/ LrDigest没有记录,谢谢Adobe! 解决方案:

local LrDigest = import "LrDigest" 
LrDigest.HMAC.digest(string, 'SHA256', key)