如何为HMACSHA256签名计算生成随机密钥

How to generate random key for HMACSHA256 signature calculation

我需要计算一些字符串的签名并计划这样做:

using (HMACSHA256 hmacSha256 = new HMACSHA256( <randombytes>))
{
         Byte[] dataToHmac = System.Text.Encoding.UTF8.GetBytes(sb.ToString());
         signature = Convert.ToBase64String(hmacSha256.ComputeHash(dataToHmac));
}

我打算将密钥与我的用户数据一起存储,但我不确定随机字节是否可以是随机的或如何在 c# 中生成它们。

生成随机密钥的正确方法是什么?

如果您希望您的随机字节是安全随机的,那么您可以使用 RNGCryptoServiceProvider.