2

node.js のcryptoモジュールを使用して、次のような SHA256 ハッシュを生成しています。

const key = crypto.createHmac('sha256', data).digest('hex');

今、tweetnaclはエラーをスローします:bad key sizeキーがに渡されるとsecretbox:

nacl.secretbox(data, Rnonc, key);

secretbox引数は Uint8Array である必要があるため、パラメータは Uint8Array に変換されます。

エラー:は hereとして定義されているため、ここbad key sizeからスローされます。問題は、から返されたキーが32 バイトのサイズではないことです。tweetnaclcrypto_secretbox_KEYBYTES32 crypto

私はSOと関連サイトを検索しましたが、実行可能な解決策を見つけることができませんでしたが、これによれば、16進数に変換されたSHA256ハッシュは次のようになります:

32 個の個別の 16 進数 (または 32 バイト)

node.js を使用してこのエラーを回避するために、32 バイトの SHA256 キーを生成するにはどうすればよいですか? SHA256 ハッシュの生成に何か問題がありますか?

4

1 に答える 1