本文實例講述了PHP常見加密函數用法。分享給大家供大家參考,具體如下:
1.crypt()函數
crypt()
函數用于返回使用DES、Blowfish或MD5算法加密過后的字符串,crypt(str,salt)接受2個參數,第1個為需要加密的字符串,第2個為鹽值(加密干擾值,如果沒有提供,則默認由PHP自動生成),返回的字符串為散列的字符串或者是一個少于13個字符的字符串;
?php
//使用crypt()函數進行加密
$password = 'jb51.net';
//沒有提供鹽值
echo "加密前:".$password;
echo "加密后(無鹽值):".crypt($password);
echo "hr>";
//提供鹽值
$salt = "good";
echo "加密后(有鹽值):".crypt($password,$salt);
?>
加密的字符串為“jb51.net”:
第一次:

刷新后:

總結:通過刷新前與刷新后可以發現,crypt()
函數如果沒有鹽值加密后的字符串的第2個$與第3個$之間的字符串的8個字符串是由PHP自動生成的,每刷新一次就變一次;crypt()
函數如果定義了鹽值后,只會截取鹽值的前2位添加在加密后的字符串前且加密后的字符串是不變的。
注意:crypt()
函數是一種單向算法,沒有相應的解密函數。PHP添加鹽值默認使用DES加密,如果salt這個字符串以$1$開頭,以$結尾則是MD5加密,只會截取鹽值的前八位添加在加密后的字符串前。


2.md5()函數
MD5函數格式:md5(string)
,返回一個32位的字符串,且MD5加密對于大小寫敏感;MD5加密主要應用在校驗網站用戶密碼上,用戶注冊時的密碼經過MD5計算后存入數據庫,當用戶登錄時,再把用戶輸入的密碼經過MD5計算后與數據庫中經過MD5加密的字符串進行比較。
?php
//使用md5()函數進行加密
$password = 'jb51.net';
echo "加密前:".$password;
echo "hr>";
echo "MD5加密后:".md5($password);
?>
結果如下:

PS:關于加密解密感興趣的朋友還可以參考本站在線工具:
文字在線加密解密工具(包含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
更多關于PHP相關內容感興趣的讀者可查看本站專題:《php加密方法總結》、《PHP編碼與轉碼操作技巧匯總》、《PHP數學運算技巧總結》、《PHP數組(Array)操作技巧大全》、《php字符串(string)用法總結》、《PHP數據結構與算法教程》、《php程序設計算法總結》及《php正則表達式用法總結》
希望本文所述對大家PHP程序設計有所幫助。
您可能感興趣的文章:- PHP7實現和CryptoJS的AES加密方式互通示例【AES-128-ECB加密】
- PHP擴展mcrypt實現的AES加密功能示例
- PHP基于openssl實現的非對稱加密操作示例
- PHP實現基于3DES算法加密解密字符串示例
- php用戶名的密碼加密更安全的方法