我有一个应该为我生成 64 字节(512 位)盐的方法:
public static string GenerateSalt()
{
var rngCrypto = new RNGCryptoServiceProvider();
byte[] saltBytes = new byte[64];
rngCrypto.GetBytes(saltBytes);
string result = Convert.ToBase64String(saltBytes);
return result;
}
这似乎运行良好,saltBytes
字节数组的大小为 64 字节。但是,我无法在包含char(64)
类型列的 MS SQL 数据库表中输入结果。
我的假设是,该Convert.ToBase64String(saltBytes);
方法对我来说是错误的,但我想知道如何改进它。快速浏览System.Text.ASCIIEncoding.Unicode.GetByteCount(secondSalt);
显示字符串大小为 176 字节而不是 64 字节。