gpt4 book ai didi

c# - C# 中的 SHA1 哈希是否会永远为给定字符串返回相同的值?

转载 作者:太空狗 更新时间:2023-10-30 00:02:01 28 4
gpt4 key购买 nike

我正在考虑更改我们加密密码的方法,以使用单向散列而不是加密。我考虑过在密码字符串上使用简单的“GetHashCode”,但 MS 警告说此功能将来可能会更改,并且在 32 位和 64 位操作系统上有所不同。我不希望结果有所不同,因为这会导致数据库中的所有密码在我输入值时不再匹配(例如,当我们都迁移到 .NET 9.0 或其他版本时)。

那么,SHA1 Hash 能解决这个问题吗?例如,如果我使用此 C# 代码:

        var data = System.Text.Encoding.ASCII.GetBytes(value);
data = System.Security.Cryptography.SHA1.Create().ComputeHash(data);
return Convert.ToBase64String(data);

值会永远是相同的结果吗?我不太担心在这么大的空间中发生碰撞,但还有其他理由考虑更宽的哈希值吗?提前致谢!

最佳答案

是的。

与GetHashCode不同的是,SHA-1是一个固定的算法,就像MD5和SHA-256一样,所有这些都已“标准化”。

关于c# - C# 中的 SHA1 哈希是否会永远为给定字符串返回相同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6798251/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com