我是PHP脚本编程新手。我开发了一个VB.net应用程序,其中我使用GetHashCode()
函数来生成激活密钥。现在我想用PHP生成激活密钥。PHP中.Net的GetHashCode()的等价物是什么?
任何人都可以帮助我获得等效的PHP函数吗?下面我写了VB.Net的例子。
Dim MyString As String = "hello"
MsgBox(MyString.GetHashCode)
输出:
-695839
我是PHP脚本编程新手。我开发了一个VB.net应用程序,其中我使用GetHashCode()
函数来生成激活密钥。现在我想用PHP生成激活密钥。PHP中.Net的GetHashCode()的等价物是什么?
任何人都可以帮助我获得等效的PHP函数吗?下面我写了VB.Net的例子。
Dim MyString As String = "hello"
MsgBox(MyString.GetHashCode)
输出:
-695839
不,你不能做到这一点与String.GetHashCode
。
您不能坚持String.GetHashCode
的结果,因为它可能会在相同程序的启动之间发生变化 - 所以即使PHP中有“等效”方法,也无法真正比较它们的结果。
你需要使用一些双方都同意的自定义代码。
I.e.使用SHA256来计算字符串的散列值 - 有很多样本如何计算任何一种语言的散列值,即hmac_sha256 in php and c# differ涵盖两者。如果您自己编写代码,请确保了解如何对字符串(即UTF8)和结果(即Hex或Base64)进行编码。
非常感谢。 – Krishna
是的,在.NET中,您可以使用ValueTypes持久保存GetHashCode()结果, 上述方法仅适用于Object(ReferenceTypes)。
https://msdn.microsoft.com/pt-br/library/system.object.gethashcode(v=vs.110).aspx
干杯
退房此相关的帖子http://stackoverflow.com/questions/8804875/php-internal-hashcode-function – Jason
的GetHashCode()的实现在.NET是未定义和可以在不同版本之间进行更改,请使用指定的哈希函数,如SHA256 – user1937198
另请参阅:http://blogs.msdn.com/b/ericlippert/archive/2011/02/28/guidelines-and-rules-for-gethashcode。 aspx - 在.Net端的'GetHashCode'“GetHashCode的使用者不能依赖它在一段时间内稳定或跨越应用程序域” –