2014-01-17 41 views
1

我是PHP腳本編程新手。我開發了一個VB.net應用程序,其中我使用GetHashCode()函數來生成激活密鑰。現在我想用PHP生成激活密鑰。PHP中.Net的GetHashCode()的等價物是什麼?

任何人都可以幫助我獲得等效的PHP函數嗎?下面我寫了VB.Net的例子。

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

輸出:

-695839

+0

退房此相關的帖子http://stackoverflow.com/questions/8804875/php-internal-hashcode-function – Jason

+4

的GetHashCode()的實現在.NET是未定義和可以在不同版本之間進行更改,請使用指定的哈希函數,如SHA256 – user1937198

+1

另請參閱:http://blogs.msdn.com/b/ericlippert/archive/2011/02/28/guidelines-and-rules-for-gethashcode。 aspx - 在.Net端的'GetHashCode'「GetHashCode的使用者不能依賴它在一段時間內穩定或跨越應用程序域」 –

回答

1

不,你不能做到這一點與String.GetHashCode

您不能堅持String.GetHashCode的結果,因爲它可能會在相同程序的啓動之間發生變化 - 所以即使PHP中有「等效」方法,也無法真正比​​較它們的結果。

你需要使用一些雙方都同意的自定義代碼。

I.e.使用SHA256來計算字符串的散列值 - 有很多樣本如何計算任何一種語言的散列值,即hmac_sha256 in php and c# differ涵蓋兩者。如果您自己編寫代碼,請確保瞭解如何對字符串(即UTF8)和結果(即Hex或Base64)進行編碼。

+0

非常感謝。 – Krishna

相關問題