【发布时间】:2018-02-15 08:32:06
【问题描述】:
我们有一个用 .NET 编写的遗留系统,我们正在将其迁移到 Node.js。
原系统使用("some string value").GetHashCode()根据用户数据生成一些token。
我正在寻找一种在 JavaScript 中实现此功能的方法,以便将系统的这一部分移植到 Node.js。
因此,我对String.GetHashCode() 的实际工作方式很感兴趣。某处有记录的算法吗?它甚至是一种稳定的算法,还是会在各种 .NET 版本中发生变化?
我试图找到有关它的实现的一些细节,但这对我来说真的很难,因为 .NET 不是我的主要技术,而且我并不真正熟悉它的资源和信息来源。
【问题讨论】:
-
.NET 中的哈希码在不同版本之间不稳定。 Here is one implementation though, from .net core.
-
跨版本稳定是否重要?它只是在程序运行时生成相同的值,不是吗?
-
来自source code中的cmets,不仅跨.net版本不稳定,甚至可能在同一进程内的AppDomain之间也不稳定。
-
你确定是 System.GetHashCode 吗?系统是一个命名空间。 GetHashCode 不带任何参数
-
问题是以前的开发者使用这个函数来生成token,然后通过各种系统持久化和分发。此外,是否可以反转此函数的结果(他们声称,他们正在这样做),还是单向函数?