我正在寻找在我正在构建的 API 中实现 HMACSHA256 请求签名。根据我从https://www.rfc-editor.org/rfc/rfc4868的理解,密钥最好与散列算法的位数相同(即 SHA256 密钥应该是 256 位/32 字节) .
我可以为 C# 使用许多不同的随机数生成器中的一个吗,或者是否有特定的方式需要生成这些密钥。
最后,Amazon Web Services 使用 HMACSHA256,但它们提供的密钥(至少对我而言)是 320 位/40 字节(当使用 UTF-8 将密钥转换为字节时,请参阅https://github.com/aws/ aws-sdk-net/blob/master/AWSSDK/Amazon.Runtime/Internal/Auth/AWS4Signer.cs#L205-L232)。由于哈希算法被截断,是否有理由使用超过所需的内容?