PHP加密技術(一)

一、 Md5加密算法
Md5()常用於密碼(數字)的加密 不可逆加密

語法:string md5($str[,bool$raw_output=false]);

$raw_output如果可選的該參數被設置爲true,那麼md5報文摘要以16字節長度的原始二進制格式返回,否則32位字符十六進制數字形式散列值返回

二、 Crypt加密算法
不可逆加密,數字、字符的加密

語法:string crypt(string $str[,string $salt])

Crypt()返回一個基於標準NUIX DES算法或者系統上其他可用的替代算法的散列字符串
$salt加密時的干擾串,使編碼更安全

注:如果加密時沒有加上$salt參數,
將隨機生成一個干擾串,否則刷新加密密文不變

三、 Sha1加密算法

語法:string sha1(string $str[,bool $raw_output=false]);   
不可逆加密

$raw_output爲TRUE,則sha1以20字符長度的原始格式返回
爲FALSE,則sha1以40字符的十六進制數字輸出

四、 URL編碼加密技術

語法:string urlencode($str); 編碼URL字符串

偏於將字符串編碼並將其用於URL請求部分,也可將變量傳遞給下一頁,返回字符串,此時除了‘-_.’之外的所有非數字字符都將被替換成百分號(%)後跟兩位十六進制數,空格編碼爲(+);

urlencode($str);   加密
urldecode($str)    解密

加密字符:

?  %3F
=   %3D
空格 +
%   %25
&   %26
\   %5C
+   %2B

在傳參時的應用:

<a href=’urlencode.php?username=abs&king&age=2’>測試urlencode</a>
//輸出結果
Array([‘username’]=>abs,[king]=>’’,[‘age’]=>2);
$username= abs&king;
$queryString=” username=”.urlencode($username).”&age=2”;
<a href=”urlencode.php? $queryString”>測試urlencode</a>
//輸出結果
Array([‘username’]=>abs&king,[‘age’]=>2);
Rawurlencode(string $str):按照RFC1738對URL進行編碼

返回值:返回字符串,將空格編碼爲%20

Rawurldecode(string $str)  對已經編碼的URL字符串進行解碼

返回值:返回字符串,此字符串中百分號%後跟兩位十六進制的序列都將被替換成原義字符。

五、 Base64信息編碼加密技術
base64對文本、圖片進行編碼

語法:string base64_encode(string $data);

該編碼是爲了使二進制數據可以通過非純8-bit的傳輸層傳輸
base64_encode數據比原始數據多用33%的空間

string  base64_decode(string $data[,bool $strict =false])   
//解碼

strict 如果輸入的數據超過了base64字符表,返回false

$filename =’1.jpg’;
$data = file_get_contents($filename);
Echo base64_encode($data);

六、 信息技術加密
1、 單項散列加密
通過對不同輸入長度的信息進行散列計算,得到固定長度的輸出,這個散列計算過程是單向的,既不能對固定長度的輸出進行計算從而獲得輸入信息。
2、 對稱散列加密
加密和解密使用同一個密鑰,可以相互推算
3、 非對稱散列加密
加密和解密使用不同的密鑰,其中一個對外公開,被稱作公鑰,另一個只有使用者知道。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章