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 バイトのサイズではないことです。tweetnacl
crypto_secretbox_KEYBYTES
32
crypto
私はSOと関連サイトを検索しましたが、実行可能な解決策を見つけることができませんでしたが、これによれば、16進数に変換されたSHA256ハッシュは次のようになります:
32 個の個別の 16 進数 (または 32 バイト)
node.js を使用してこのエラーを回避するために、32 バイトの SHA256 キーを生成するにはどうすればよいですか? SHA256 ハッシュの生成に何か問題がありますか?