php密碼編譯演算法是用來給php代碼加密的,那麼php密碼編譯演算法究竟有哪些呢?這篇文章我將給大家分享幾種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.非對稱散列加密