本文實(shí)例講述了PHP常見加密函數(shù)用法。分享給大家供大家參考,具體如下:
1.crypt()函數(shù)
crypt()
函數(shù)用于返回使用DES、Blowfish或MD5算法加密過后的字符串,crypt(str,salt)接受2個參數(shù),第1個為需要加密的字符串,第2個為鹽值(加密干擾值,如果沒有提供,則默認(rèn)由PHP自動生成),返回的字符串為散列的字符串或者是一個少于13個字符的字符串;
?php
//使用crypt()函數(shù)進(jìn)行加密
$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添加鹽值默認(rèn)使用DES加密,如果salt這個字符串以$1$開頭,以$結(jié)尾則是MD5加密,只會截取鹽值的前八位添加在加密后的字符串前。
2.md5()函數(shù)
MD5函數(shù)格式:md5(string)
,返回一個32位的字符串,且MD5加密對于大小寫敏感;MD5加密主要應(yīng)用在校驗(yàn)網(wǎng)站用戶密碼上,用戶注冊時的密碼經(jīng)過MD5計(jì)算后存入數(shù)據(jù)庫,當(dāng)用戶登錄時,再把用戶輸入的密碼經(jīng)過MD5計(jì)算后與數(shù)據(jù)庫中經(jīng)過MD5加密的字符串進(jìn)行比較。
?php
//使用md5()函數(shù)進(jìn)行加密
$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é)運(yùn)算技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計(jì)算法總結(jié)》及《php正則表達(dá)式用法總結(jié)》
希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:- PHP7實(shí)現(xiàn)和CryptoJS的AES加密方式互通示例【AES-128-ECB加密】
- PHP擴(kuò)展mcrypt實(shí)現(xiàn)的AES加密功能示例
- PHP基于openssl實(shí)現(xiàn)的非對稱加密操作示例
- PHP實(shí)現(xiàn)基于3DES算法加密解密字符串示例
- php用戶名的密碼加密更安全的方法