这个哈希是从哪里来的? [复制]

Posted

技术标签:

【中文标题】这个哈希是从哪里来的? [复制]【英文标题】: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" 。如果我再次运行我的应用程序,它会给我另一个代码!是随机哈希码吗?!或者这是一个特殊的单词哈希码?!

感谢您的阅读。

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

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

How is GetHashCode() of C# string implemented?

你可能特别感兴趣的是

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

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

【讨论】:

以上是关于这个哈希是从哪里来的? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

这个 backBarButtonItem 又是从哪里来的呢?

这个 VSCODE 智能感知是从哪里来的?

人类的创造力是从哪里来的:4星|《三联生活周刊》2018年第46期

你好,你知道这个包裹是从哪里来的吗?包:flutter_gen/gen_l10n/gallery_localizations.dart

应该使用哪种数据类型来存储哈希?

CRM订单状态的Open, In process和Completed这些条目是从哪里来的