带有 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:compute
的signature一致。
我假设您尝试使用 base64:decode -- 然而,此函数将实际的 base64 编码位转换为字符串,将它们解释为 UTF-8,这不是您在这里需要的。
JSONiq 中有两种二进制类型(它们实际上来自 XML Schema):hexBinary
和 base64Binary
。它们具有相同的值 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
我 运行 下面的代码使用 fcavalieri/zorba
docker 图像。 hmac:compute("The quick brown fox jumps over the lazy dog", "key" ,"SHA256")
产生: 97yD9DBThCSxMpjmqm+xQ+9NWaFJRhdZl0edvC0aPNg=
当 base64 解码时 returns 垃圾而不是预期的 f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8
我是否正确使用了这个模块?
这是因为输出的是base64,与hmac:compute
的signature一致。
我假设您尝试使用 base64:decode -- 然而,此函数将实际的 base64 编码位转换为字符串,将它们解释为 UTF-8,这不是您在这里需要的。
JSONiq 中有两种二进制类型(它们实际上来自 XML Schema):hexBinary
和 base64Binary
。它们具有相同的值 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