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、 非对称散列加密
加密和解密使用不同的密钥,其中一个对外公开,被称作公钥,另一个只有使用者知道。

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