我是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的使用者不能依賴它在一段時間內穩定或跨越應用程序域」 –