C#哈希密码创建盐问题

5Yr*_*DBA 1 c# security hash

如果我通过使用这样的东西创建盐:

public class User
    {
        private const int Hash_Salt_Length = 8;
        private byte[] saltBytes = new byte[Hash_Salt_Length];


        public User()
        {
            RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
            rng.GetNonZeroBytes(saltBytes);     
        }
        ....

}
Run Code Online (Sandbox Code Playgroud)

saltBytes每个会话的bytes数组都不同(重启应用程序).如何检查密码以允许用户登录我们的应用程序?

SLa*_*aks 8

您需要将salt与密码哈希一起存储在数据库中.

请注意,您不应该调用GetNonZeroBytes,因为它提供的随机性较低.