2013-04-06 52 views
0

我目前正試圖在PHP中自學mcrypt。我只是複製並粘貼下面的示例代碼到我的PHP網頁:mcrypt字符

$size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CFB); 
$iv = mcrypt_create_iv($size, MCRYPT_DEV_RANDOM); 

echo $iv; 

下面的代碼生成此:

öÈÅê^ƒ€™Ç8xîÉ/... 

這是產生密碼鹽好的解決辦法?如果是這樣,我對這種方法產生的外來角色有一個小小的擔心。我打算將它存儲在數據庫中&想知道這裏產生的字符是否應該影響我對整理的決定?到目前爲止,我一直在使用utf_encoding_ci進行整理。我不太瞭解整理或如何處理數據庫中的不同字符。

+1

這是* binary *數據,應該這樣處理。它沒有「編碼」,因爲它不代表文本。請參閱[每個程序員都絕對需要了解編碼和字符集以處理文本](http://kunststube.net/encoding/)。 – deceze 2013-04-06 03:17:41

+0

存在外觀的字符存在,因爲IV並不意味着字面意義上的字符串。這是一個二進制字節的隨機生成,因此大多數時候不會形成單詞或字母。 – Jon 2013-04-06 03:17:45

回答

0

我不知道排序規則或任何內容,但如果您正在加密數據庫中的密碼,一些推薦使用的方法是使用md5()sha1()進行加密。它們應該適合正常使用。評論中的解釋很好地解釋了爲什麼有奇怪的字符以及如何將它們存儲在數據庫中。