PHP中加密形式及演算法介紹
1.Md5()加密演算法——單向加密,不能解密
語法:String md5(string $str,$raw=false),
$str:必需。規定要計算的字串,
$raw:可選。規定十六進位制或二進位制輸出格式:
- TRUE - 原始 16 字元二進位制格式
- FALSE - 預設。32 字元十六進位制數
返回值:如果成功則返回已計算的MD5雜湊,如果失敗則返回FALSE
2.Crypt()加密演算法——同樣是單向加密
語法:string crypt(string $str,string,$salt),
$str:必需。規定要計算的字串,
$salt,可選。用於增加被編碼字元數目的字串,以使編碼更加安全。如果未提供 salt 引數,則每次呼叫該函式時 PHP 會隨機生成一個。
返回值:返回一個基於標準UNIX DES演算法或系統上其他可用的代替演算法的雜湊字串
例子:1.crypt('zhangsan');--輸出 $1$aX3.sX0.$PcFaGWCv51UNO.1eIvMpy0(最前邊的$1$aX3.sX0.$為隨機給的字串)
2.crypt('zhangsan','we');--輸出 weGSA6nisE59k(“we”是不變的)
支援的多種PHP設定的演算法:
3.Sha1()加密演算法(單向加密)
語法:String sha1(string $str,$raw_output=false),
$str :加密的字串
$raw_output:如果可選的raw_output 引數被設定為TRUE,那麼 sha1 摘要將以 20 字元長度的原始格式返回,否則返回值是一個 40 字元長度的十六進位制數字。
返回值:sha1雜湊值字串
注意:同md5一樣 百度上邊部分解密網站是可以參照他提前錄好的密文與咱們輸入的密文進行比較,從而得到明文,但不是真正意義的破解,進行多次加密可以預防這個事情的發生。
4.URL編碼加密演算法——雙向
一、urlencode(string $str):編碼URL字串,$str:要編碼的字串 返回值:返回編碼後的字串
編碼規範:此字串中出來-_.之外的所有非字母數字字元都將被替換成百分號(%)後跟兩位十六進位制數,空格則編碼為加號(+)
常用的字元被編碼後,括號裡代表編碼後的格式:?(%3F),=(%3D),空格(+),%(%25),&(%26),\(%5C),+(%2B)
二、urldecode(string $str):解碼已編碼的URL字串,$str:要解碼的字串 返回值:返回解碼後的字串
注意:rawurlencode編碼 rawurldecode解碼 跟上邊的urlencode urldecode 道理及用法完全相同,唯一的區別:rawurlencode把空格編碼成%20
5.Base64編碼加密技術——雙向
一、base64_encode(string $data):使用base64對data進行編碼
二、base64_decode(string $data,$strict=false):對使用base64編碼的資料進行解碼,$strict如果輸入的資料超過了base64字母表,則返回false
總結:大致的加密技術可以分為以下三種
1.單向雜湊加密
2.對稱雜湊加密
3.非對稱雜湊加密
想了解更多的小夥伴自行百度吧,以上內容純手打,謝謝。