2009-06-08 60 views
13

PHP是否有一個內置的函數來完成字符串到整數哈希值,難以反轉的東西?PHP的哈希表格字符串爲整數

現在,我知道我也許可以逃脫做一個MD5和治療它的一個子爲基數16號,但我在尋找內置的東西。

感謝。

回答

30

我認爲最好的選擇將選擇一個標準的哈希[要麼md5()sha1()]來獲得你的字符串的哈希值,然後得到一個整數哈希,到base_convert($hash, 16, 10),並且應該將哈希轉換成整數哈希。

希望我正確理解你的問題。

2

我不認爲你會發現任何內置的,但你的想法md5()實際上是相當不錯的。我無法想象爲什麼你會需要別的東西:不能更快,不能更穩定,...

3

我認爲你在兩個步驟中解決這個問題的正確途徑。

首先,您應該堅持使用md5散列來滿足您的「難以逆向」要求。

其次,你可以把md5輸出作爲輸入到你的「將其轉換爲整數」函數。

對於第二部分,你究竟要做什麼? 是一個整數嗎?或者只是可打印的字符?如果您只是想將散列轉換爲可以存儲在數據庫中的東西,通過線路傳輸或其他原因,md5字符串將無法執行,convertuuencode函數可能適用於您:http://us.php.net/manual/en/function.convert-uuencode.php

另一個環島hackish的做法是獲得你的散列的二進制值,並將其轉換爲小數使用:http://us.php.net/manual/en/function.bindec.php雖然,我從來沒有試過這個,我不知道它是否會像你想要的那樣工作。