摘要:中文亂碼河北省廣東省河北省省河北廣東省省廣省的十六制作表示是,而東的十六進制表示是,都出現了,哦正因為是,所以廣東省省的時候把東的十六進制表示的最后一位也被掉了。
本文持續更新,歡迎關注
字符串 == 比較類型強轉隱患// php 5 var_dump(md5("240610708") == md5("QNKCDZO"));//bool(true) var_dump(md5("aabg7XSs") == md5("aabC9RqS"));//bool(true) var_dump(sha1("aaroZmOk") == sha1("aaK1STfY"));//bool(true) var_dump(sha1("aaO8zKZF") == sha1("aa3OFF9m"));//bool(true) var_dump("0010e2" == "1e3");//10×10^2 = 1×10^3 bool(true) var_dump("0x1234Ab" == "1193131");//bool(true) var_dump("0xABCdef" == " 0xABCdef");//bool(true) var_dump("603E-4234" == "272E-3063");//bool(true) var_dump("0e1" == "0e2"); //bool(true) // php 7 含十六進制字符串不再被認為是數字 http://php.net/manual/zh/migration70.incompatible.php var_dump("0x1234Ab" == "1193131");//bool(false) var_dump("0xABCdef" == " 0xABCdef");//bool(false) var_dump("0x123" == "291");//bool(false) var_dump(is_numeric("0x123"));//bool(false) >>> md5("240610708") => "0e462097431906509019562988736854" >>> md5("QNKCDZO") => "0e830400451993494058024219903391" // php 是弱語言,會自動判斷數據類型,0eXXXXXXXXXX 轉成 0 了 //來自文檔:如果比較一個數字和字符串或者比較涉及到數字內容的字符串,則字符串會被轉換為數值并且比較按照數值來進行。此規則也適用于 switch 語句。當用 === 或 !== 進行比較時則不進行類型轉換,因為此時類型和數值都要比對。 >>> md5("QNKCDZO")==0 => true >>> md5("240610708")==0 => true // 使用 === 判斷 官方都建議直接用password_hash加密 var_dump(md5("240610708") === md5("QNKCDZO"));//bool(false) //http://bayescafe.com/php/yuebaomei-ctf.html var_dump("42"=="0x2A");//bool(true) var_dump("1" == "01"); // 1 == 1 -> true var_dump("10" == "1e1"); // 10 == 10 -> true var_dump(100 == "1e2"); // 100 == 100 -> true var_dump("x34x32x2E"=="42");//bool(true) var_dump("