1

fcavalieri/zorbaDocker イメージを使用して次のコードを実行しています。hmac:compute("The quick brown fox jumps over the lazy dog", "key" ,"SHA256")生成: 97yD9DBThCSxMpjmqm+xQ+9NWaFJRhdZl0edvC0aPNg=base64 でデコードすると、期待されるものではなくガベージが返されますf7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8

このモジュールを正しく使用していますか?

4

1 に答える 1

1

これは、出力が base64 であるためで、これは の署名と一致していますhmac:compute

base64:decodeを使用しようとしたと思いますが、この関数は実際の base64 でエンコードされたビットを文字列に変換し、それらを UTF-8 として解釈します。これはここでは必要ありません。

JSONiq には 2 つのバイナリ型があります (これらは実際には XML スキーマに由来します):hexBinarybase64Binary. それらは同じ値空間を持ちますが、異なる語彙空間を使用します。hexBinary出力は、次のように 16 進出力に変換できます。

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

于 2018-03-26T08:39:01.517 に答える