1
我想比较用户从ASP.NET站点登录时的密码到我在SQL Server中为他生成的密码。比较SHA2_512 C#和SQL Server
于是,我产生这样的SQL服务器密码字段:
insert into users
select 'username', HASHBYTES('SHA2_512', CONVERT(nvarchar(4000),'password'))
和代码在C#:
string text = Password;
SHA512 alg = SHA512.Create();
byte[] result = alg.ComputeHash(Encoding.UTF8.GetBytes(text));
string hash = Encoding.UTF8.GetString(result);
那两个哈希有很大的不同。
我在哪里错了?
对于密码,SHA 512太快。使用salted bcrypt。 – SLaks
哈希结果不是有效的UTF8。使用Base64。 – SLaks