什么是PHP中的.Net的GetHashCode()?

时间:2014-01-17 17:31:27

标签: c# php asp.net .net vb.net

我是PHP脚本的新手。我开发了一个VB.net应用程序,我在其中使用GetHashCode()函数来生成激活密钥。现在我想使用PHP生成激活密钥。

任何人都可以帮助我获得相同的PHP功能吗?下面我写了VB.Net的例子。

Dim MyString As String = "hello"
MsgBox(MyString.GetHashCode)

输出:

  

-695839

2 个答案:

答案 0 :(得分:1)

不,你不能用String.GetHashCode来做到这一点。

你不能保留String.GetHashCode的结果,因为它可能/将在同一程序的启动之间发生变化 - 所以即使PHP中存在“等效”方法,你也无法真正比​​较它们的结果。

您需要使用双方同意的一些自定义代码。

即。使用SHA256来计算字符串的散列 - 有很多样本如何计算任何一种语言的散列,即hmac_sha256 in php and c# differ涵盖两者。如果自己编写代码,请确保了解如何编码字符串(即UTF8)和结果(即Hex或Base64)。

答案 1 :(得分:0)

是的,在.NET中,您可以在使用ValueTypes时保留GetHashCode()结果, 提到的方法仅适用于Object(ReferenceTypes)。

https://msdn.microsoft.com/pt-br/library/system.object.gethashcode(v=vs.110).aspx

干杯