JSONiq with Zorba HMAC

时间:2018-03-25 20:03:32

标签: zorba jsoniq

I'm running the following code using the fcavalieri/zorba docker image. hmac:compute("The quick brown fox jumps over the lazy dog", "key" ,"SHA256") produces: 97yD9DBThCSxMpjmqm+xQ+9NWaFJRhdZl0edvC0aPNg= which when base64 decoded returns garbage rather than the expected f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8

Am I using this module correctly?

1 个答案:

答案 0 :(得分:1)

这是因为输出是base64,这与hmac:compute的{​​{3}}一致。

我假设您尝试使用signature - 但是,此函数将实际的base64编码位转换为字符串,将其解释为UTF-8,这不是您需要的。

JSONiq中有两种二进制类型(它们实际上来自XML Schema):hexBinarybase64Binary。它们具有相同的值空间,但使用不同的词法空间。输出可以转换为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