有关创建密码盐和散列密码的简单建议吗?

时间:2011-06-16 07:23:12

标签: c# .net passwords hash salt

想知道是否有人有一些快速链接到代码片段以生成随机盐(这不容易猜到),然后使用生成的哈希散列一些纯文本密码。

建议或链接,请?

.NET代码,请。

1 个答案:

答案 0 :(得分:0)

可以知道盐。你为什么要盐“不容易猜”?它必须是唯一的,以便如果两个人共享相同的密码,应用于密码的盐确保它们不会以相同的哈希值结束并降低Rainbow攻击的有效性(使用反向哈希字典的地方)查看可能产生特定哈希值的可能的纯文本值)

来自MSDN上的代码段:

private static string CreateSalt(int size)
{
  // Generate a cryptographic random number using the cryptographic
  // service provider
  RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
  byte[] buff = new byte[size];
  rng.GetBytes(buff);
  // Return a Base64 string representation of the random number
  return Convert.ToBase64String(buff);
}

然后,您可以将其附加或添加到纯文本密码,然后将其哈希。