带有 Zorba HMAC 的 JSONiq

JSONiq with Zorba HMAC

我 运行 下面的代码使用 fcavalieri/zorba docker 图像。 hmac:compute("The quick brown fox jumps over the lazy dog", "key" ,"SHA256") 产生: 97yD9DBThCSxMpjmqm+xQ+9NWaFJRhdZl0edvC0aPNg= 当 base64 解码时 returns 垃圾而不是预期的 f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8

我是否正确使用了这个模块?

这是因为输出的是base64,与hmac:computesignature一致。

我假设您尝试使用 base64:decode -- 然而,此函数将实际的 base64 编码位转换为字符串,将它们解释为 UTF-8,这不是您在这里需要的。

JSONiq 中有两种二进制类型(它们实际上来自 XML Schema):hexBinarybase64Binary。它们具有相同的值 space,但使用不同的词法 space。可以将输出转换为 hexBinary 以获得十六进制输出,如下所示:

import module namespace hmac = "http://zorba.io/modules/hmac";

hexBinary(hmac:compute("The quick brown fox jumps over the lazy dog", "key" ,"SHA256"))

Zorba 然后输出预期的 F7BC83F430538424B13298E6AA6FB143EF4D59A14946175997479DBC2D1A3CD8