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

时间:2014-06-24 03:38:03

标签: lua adobe hmac sha256 lightroom

我要提到的第一件事是我对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并保存 as' sha2.lua'文件
  3. 现在我在文件中使用它

    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拒绝加载插件,日志中也没有任何内容

    非常感谢您的帮助

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

如果你只需要获得SHA256哈希,就有办法做Lightroom

我发布了我的问题here,并得到了答案。但是在SDK文档(Lightroom SDK)

上没有这方面的参考
local sha = import 'LrDigest'
d = sha.SHA256.digest ("Hello world")

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

答案 2 :(得分:0)

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

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