關於 Ray Paseur 的評論,這些字串的雜湊值為
0e462097431906509019562988736854
0e830400451993494058024219903391
獲得完全符合 /^0+e[0-9]+$/ 格式的雜湊值的機率不高,但也並非微不足道。
應該為所有雜湊函數添加一個一般警告,始終使用三個等號 === 進行比較。
實際上,警告應該放在比較字串值時的運算子章節!有很多關於字串比較的警告,但沒有特別提到 /^0+e[0-9]+$/ 格式。
(PHP 4, PHP 5, PHP 7, PHP 8)
md5 — 計算字串的 md5 雜湊值
由於此雜湊演算法速度很快,因此不建議使用此函式來保護密碼。有關詳細資訊和最佳實務,請參閱 密碼雜湊常見問答集。
使用 » RSA Data Security, Inc. MD5 訊息摘要演算法 計算 string
的 MD5 雜湊值,並返回該雜湊值。
返回一個 32 個字元的十六進位數字雜湊值。
範例 #1 md5() 範例
<?php
$str = 'apple';
if (md5($str) === '1f3870be274f6c49b3e31a0c6728957f') {
echo "您想要綠色還是紅色的蘋果?";
}
?>
關於 Ray Paseur 的評論,這些字串的雜湊值為
0e462097431906509019562988736854
0e830400451993494058024219903391
獲得完全符合 /^0+e[0-9]+$/ 格式的雜湊值的機率不高,但也並非微不足道。
應該為所有雜湊函數添加一個一般警告,始終使用三個等號 === 進行比較。
實際上,警告應該放在比較字串值時的運算子章節!有很多關於字串比較的警告,但沒有特別提到 /^0+e[0-9]+$/ 格式。
md5('240610708') == md5('QNKCDZO')
這個比較結果為真,因為兩個 md5() 雜湊值都以 '0e' 開頭,所以 PHP 類型轉換會將這些字串理解為科學記號。根據定義,零的任何次方都為零。