私が構築しているAPIでHMACSHA256リクエストの署名を実装しようとしています。私がhttps://tools.ietf.org/html/rfc4868から理解したところでは、秘密鍵はハッシュアルゴリズムと同じ数のビットであることがベストです(つまり、SHA256秘密鍵は256ビット/ 32バイトでなければなりません)。C#で強力なHMACSHA256キーを生成する
C#のためにさまざまな乱数生成器を使用することができますが、これらのキーを生成する必要がある特定の方法がありますか。
最後に、Amazon WebサービスはHMACSHA256を使用しますが、(少なくとも私にとって)秘密鍵は320ビット/ 40バイトです(キーがUTF-8を使用してバイトに変換された場合はhttps://github.com/aws/aws-sdk-net/blob/master/AWSSDK/Amazon.Runtime/Internal/Auth/AWS4Signer.cs#L205-L232を参照)。それが切り捨てられているので、ハッシュアルゴリズムによって必要以上に使用する理由はありますか? (おそらく安全な)キーを生成するための
Base64はHexと同じではありません。IEでは、変数名が誤解を招きます。 – Peter
@Peter、それを指摘してくれてありがとう、私は変数名を変更しました。 – Omar