本文實例講述了PHP常見加密函數(shù)用法。分享給大家供大家參考,具體如下:
1.crypt()函數(shù)
crypt()
函數(shù)用于返回使用DES、Blowfish或MD5算法加密過后的字符串,crypt(str,salt)接受2個參數(shù),第1個為需要加密的字符串,第2個為鹽值(加密干擾值,如果沒有提供,則默認由PHP自動生成),返回的字符串為散列的字符串或者是一個少于13個字符的字符串;
?php //使用crypt()函數(shù)進行加密 $password = 'jb51.net'; //沒有提供鹽值 echo "加密前:".$password; echo "加密后(無鹽值):".crypt($password); echo "hr>"; //提供鹽值 $salt = "good"; echo "加密后(有鹽值):".crypt($password,$salt); ?>
加密的字符串為“jb51.net”:
第一次:
刷新后:
總結(jié):通過刷新前與刷新后可以發(fā)現(xiàn),crypt()
函數(shù)如果沒有鹽值加密后的字符串的第2個$與第3個$之間的字符串的8個字符串是由PHP自動生成的,每刷新一次就變一次;crypt()
函數(shù)如果定義了鹽值后,只會截取鹽值的前2位添加在加密后的字符串前且加密后的字符串是不變的。
注意:crypt()
函數(shù)是一種單向算法,沒有相應(yīng)的解密函數(shù)。PHP添加鹽值默認使用DES加密,如果salt這個字符串以$1$開頭,以$結(jié)尾則是MD5加密,只會截取鹽值的前八位添加在加密后的字符串前。
2.md5()函數(shù)
MD5函數(shù)格式:md5(string)
,返回一個32位的字符串,且MD5加密對于大小寫敏感;MD5加密主要應(yīng)用在校驗網(wǎng)站用戶密碼上,用戶注冊時的密碼經(jīng)過MD5計算后存入數(shù)據(jù)庫,當用戶登錄時,再把用戶輸入的密碼經(jīng)過MD5計算后與數(shù)據(jù)庫中經(jīng)過MD5加密的字符串進行比較。
?php //使用md5()函數(shù)進行加密 $password = 'jb51.net'; echo "加密前:".$password; echo "hr>"; echo "MD5加密后:".md5($password); ?>
結(jié)果如下:
PS:關(guān)于加密解密感興趣的朋友還可以參考本站在線工具:
文字在線加密解密工具(包含AES、DES、RC4等):
http://tools.jb51.net/password/txt_encode
MD5在線加密工具:
http://tools.jb51.net/password/CreateMD5Password
在線散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt
在線MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha
在線sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.jb51.net/password/sha_encode
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php加密方法總結(jié)》、《PHP編碼與轉(zhuǎn)碼操作技巧匯總》、《PHP數(shù)學(xué)運算技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計算法總結(jié)》及《php正則表達式用法總結(jié)》
希望本文所述對大家PHP程序設(shè)計有所幫助。