我正在使用 HMACSHA512 使用共享密钥对数据进行哈希处理。由于密钥是共享的,我希望它是所有可打印的字符,以便于传输。我想知道生成这些密钥的最佳方法是什么。
我目前正在使用 RNGCryptoServiceProvider 的 GetBytes() 方法来生成密钥,但它返回的字节数组包含不可打印的字符。所以我想知道对结果进行base64编码是否安全,或者这是否会过多地侵蚀随机性并使事情变得不那么安全?如果这不是一个好方法,你能推荐一个吗?
我确实明白,通过将键限制为可打印字符,我限制了键空间的整体宽度(即:去掉 8 位中的 1 位),但我对此表示满意。