【问题标题】:What is this hash come from? [duplicate]这个哈希是从哪里来的? [复制]
【发布时间】:2014-09-05 21:12:55
【问题描述】:

我可以显示这样的哈希码:

            string str = "Hello World !";
        MessageBox.Show(str.GetHashCode().ToString());

这很简单,消息框返回“Hello World!”的哈希码. 但我想知道我什么时候使用这样的代码:

            MessageBox.Show(GetHashCode().ToString());

这段代码会发生什么?!它给了我这样的代码 "64923656" 。如果我再次运行我的应用程序,它会给我另一个代码!是随机哈希码吗?!或者这是一个特殊的单词哈希码?!

感谢您的阅读。

【问题讨论】:

    标签: c# hash


    【解决方案1】:

    它在this 上调用GetHashCode(),根据您对MessageBox 的使用,这可能是一个Windows 窗体。

    【讨论】:

      【解决方案2】:

      它是您班级的HashCode 当前实例。您正在调用从对象继承的 Object.GetHashCode 方法。

      【讨论】:

        【解决方案3】:

        有关 GetHashCode() 的详细解释,请参阅这篇文章:

        How is GetHashCode() of C# string implemented?

        你可能特别感兴趣的是

        s_UseRandomizedStringHashing 变量启用了哈希算法的安全版本,旨在让程序员避免使用 GetHashCode() 为密码或加密等内容生成哈希值等不明智的行为。它由 app.exe.config 文件中的条目启用

        我相信这是导致同一字符串的哈希值在程序执行之间发生变化的原因。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-07-31
          • 2019-11-18
          • 2018-09-25
          • 2014-10-23
          • 2018-02-26
          • 1970-01-01
          相关资源
          最近更新 更多