我正在使用fcavalieri/zorba
Docker Image运行以下代码。hmac:compute("The quick brown fox jumps over the lazy dog", "key" ,"SHA256")
生产:97yD9DBThCSxMpjmqm+xQ+9NWaFJRhdZl0edvC0aPNg=
base64解码返回垃圾而不是预期的f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8
我是否正确使用此模块?
这是因为输出为base64,这与 hmac:compute
的签名一致。
我假设您尝试使用base64:Decode-但是,此函数将实际的base64编码位转换为字符串,将它们解释为UTF-8,这不是您在这里需要的。
JSONIQ中有两种二进制类型(它们实际上来自XML模式(: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