我正在考虑改变我们加密密码的方法,使用单向哈希而不是加密.我考虑在密码字符串上使用简单的"GetHashCode",但MS警告此函数将来可能会更改,并且在32位和64位操作系统上有所不同.我不希望结果有所不同,因为这会导致数据库中的所有密码在输入值时不再匹配(例如,当我们都移动到.NET 9.0或其他东西时).
那么,SHA1哈希是否消除了这个问题?例如,如果我使用这个C#代码:
var data = System.Text.Encoding.ASCII.GetBytes(value);
data = System.Security.Cryptography.SHA1.Create().ComputeHash(data);
return Convert.ToBase64String(data);
Run Code Online (Sandbox Code Playgroud)
这个价值永远是永远相同的结果吗?我并不太担心这个大空间的碰撞,但还有其他理由考虑更广泛的哈希吗?提前致谢!
Pet*_* O. 12
是.
与GetHashCode不同,SHA-1是一种固定算法,就像MD5和SHA-256一样,所有这些算法都已经"标准化".
归档时间: |
|
查看次数: |
5523 次 |
最近记录: |