2013-05-25 36 views
1

當我測試這個腳本:什麼是函數md5()在PHP中的(默認)編碼?

$str = "apple"; 

echo md5($str); 

結果匹配使用UTF8做MD5的結果(經測試使用C#)

我應該相信,這將永遠是在任何其他環境的情況下?

如果我將腳本放在任何虛擬主機,windows或linux上,它的行爲總是與UTF8編碼相同?

+0

使用相同的輸入它總是會給你相同的輸出,這是你問什麼? – Maerlyn

+0

@Maerlyn是的,我擔心輸入會根據環境有不同的編碼,比如來自GET變量,或者通過Web瀏覽器或Web服務器預處理。 – sharp12345

+0

您需要確保它使用相同的編碼。 – Maerlyn

回答

5

字符串文字的編碼是您保存源文件時使用的任何編碼。如果以UTF-16格式保存此php文件,您將得到不同的結果,即代碼是否運行。

PHP中沒有統一或受管理的編碼。 PHP中的字符串可以是任何編碼,換句話說,它們是等效於具有更多抽象字符串類型的語言的字節數組

0

只需md5()將始終給出相同的編碼。 如果您不能相信它,只需將數據編碼到數據庫本身即可。

相關問題