PHP常見加密函數(shù)用法示例【crypt與md5】
本文實(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計算后存入數(shù)據(jù)庫,當(dāng)用戶登錄時,再把用戶輸入的密碼經(jīng)過MD5計算后與數(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è)計算法總結(jié)》及《php正則表達(dá)式用法總結(jié)》
希望本文所述對大家PHP程序設(shè)計有所幫助。
相關(guān)文章
Laravel 5.3 學(xué)習(xí)筆記之 錯誤&日志
這篇文章主要介紹了Laravel 5.3 學(xué)習(xí)筆記之 錯誤&日志的相關(guān)資料,需要的朋友可以參考下2016-08-08php mssql擴(kuò)展SQL查詢中文字段名解決方法
問題就出現(xiàn)在SQLServer中表的字段名是中文,寫好的查詢語句在SQLServe里測試是通過有記錄返回,用PHP的MSSQL擴(kuò)展查詢就是報錯2012-10-10PHP實(shí)現(xiàn)簡單實(shí)用的驗(yàn)證碼類
這篇文章主要介紹了PHP實(shí)現(xiàn)簡單實(shí)用的驗(yàn)證碼類,包含驗(yàn)證碼常用的隨機(jī)驗(yàn)證碼、干擾線、圖片生成與輸出等相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07PHP5中使用mysqli的prepare操作數(shù)據(jù)庫的介紹
今天小編就為大家分享一篇關(guān)于PHP5中使用mysqli的prepare操作數(shù)據(jù)庫的介紹,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03php進(jìn)程(線程)通信基礎(chǔ)之System V共享內(nèi)存簡單實(shí)例分析
這篇文章主要介紹了php進(jìn)程(線程)通信基礎(chǔ)之System V共享內(nèi)存,結(jié)合簡單實(shí)例形式分析了PHP System V共享內(nèi)存原理、相關(guān)函數(shù)與基本使用技巧,需要的朋友可以參考下2019-11-11