復(fù)制代碼 代碼如下:
echo?substr(md5("admin"),8,16);??//?16位MD5加密??
echo?"
";??
echo?md5("admin");????//?32位MD5加密??
?>??
??
16位的MD5加密用substr函數(shù)截取了字符得到實現(xiàn)....?
不想深入研究了?:)??要把腦力放到其他關(guān)鍵的地方~~?
今天做了個php鏈接mssql數(shù)據(jù)庫,數(shù)據(jù)庫中的表中字段使用MD5十六加密的。但是php中的MD5默認(rèn)是32位,導(dǎo)致登錄程序沒辦法使用md5加密跟表中字段匹配,在網(wǎng)上一搜也有不少人有這方面的困惑,后來找到一個解決辦法,是正確的,就記錄下來。
使用substr函數(shù)截?。?
substr(md5("admin"),8,16); // 16位MD5加密
md5("admin"); // 32位MD5加密
經(jīng)過本站測試結(jié)果如下:
我們以asp的幾個md5后的結(jié)果比較
附:如果遇到MD5加密文件,而又不知道的密碼的,請在數(shù)據(jù)庫中換上這組加密的數(shù)據(jù)。
admin---16位加密---7a57a5a743894a0e
admin---32位加密---21232f297a57a5a743894a0e4a801fc3
admin---40位加密---7a57a5a743894a0e4a801fc343894a0e4a801fc3
substr(md5("admin"),8,16); // 16位MD5加密 正是上面的32為從第8個字符開始的16個字符。所以大家不用考慮唯一性的問題。本身就是正確的。網(wǎng)上有人說php5支持
復(fù)制代碼 代碼如下:
echo md5("admin",true);//返回16位,不過這是在PHP5里才有。
經(jīng)測試輸出的結(jié)果是亂碼,如果大家有什么好的代碼,可以分享下。