我正在尝试编写一个基本的散列函数接受一个输入字符串和一个盐字符串。然后需要将这两个字符串都转换为字节数组,组合起来然后生成哈希。
我在 Microsoft Membership 中寻找灵感,发现他们是这样做的:
byte[] bytes = Encoding.Unicode.GetBytes(input);
byte[] array = Convert.FromBase64String(salt);
所以我想问的是:
- 将输入字符串转换为字节数组时,unicode 是最佳编码吗?UTF-8 呢?
- Base64String 是用于盐值的最佳格式吗?如果我限制为 Base64 字符串,那么基本上我总是必须使用哈希作为盐,这是推荐的方式吗?