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?
答案 0 :(得分:1)
这是因为输出是base64,这与hmac:compute
的{{3}}一致。
我假设您尝试使用signature - 但是,此函数将实际的base64编码位转换为字符串,将其解释为UTF-8,这不是您需要的。
JSONiq中有两种二进制类型(它们实际上来自XML Schema):hexBinary
和base64Binary
。它们具有相同的值空间,但使用不同的词法空间。输出可以转换为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