1
public static string GenerateHash(string password, string salt, int iterations)
{
var pbkdf2 = new Rfc2898DeriveBytes(password, Convert.FromBase64String(salt), iterations);
var keyBytes = pbkdf2.GetBytes(32);
return Convert.ToBase64String(keyBytes);
}
我得到一个哈希密码是用于一个zip档案,但我不知道我是否实际上正确检索哈希。这是在c#中的PBKDF2的正确实现
我生成的盐的方法是完全一样有描述,只是在一个单独的方法。 原因是我想将salt作为注释存储在zip存档中。 这样,当我们的程序尝试打开它时,它知道要添加到用户的密码中。 我认为这是相当安全的? 我听说一个暴露的盐不是特别危险 – user5113199
@ user5113199我不能评论这里的具体情况,但一般来说盐渍的目的是防止彩虹表,而不是使任何密码“更安全”。所以从这个角度来看,盐应该是公开的。请记住,解锁zip文件是一个脱机过程,bruteforce可以在全功能下发生,因此了解salt *会减少攻击者的复杂程度。 – poke
@ user5113199 Salt的意思是公开的 - 存储它们的常用方法是将它们预先加密到密文。所以了解盐并不会降低安全性。 – ckuri