您的位置:首页 > 编程语言 > PHP开发

PHP加密技术总结

2015-02-09 08:41 218 查看
PHP中几种加密形式(来自慕课网中的视频教程)

目录

Md5加密算法

Crypt加密算法

Sha1加密算法

URL编码加密技术

Base64编码加密技术

信息加密技术总结

1.Md5()加密算法

web应用中最常见的密码加密算法之一。

与Crypt( )、sha1()一样,都是单向加密,不可解密。


为何出现md5解密呢?如:http://www.cmd5.com


其实是因为数据库中存储了一些常见的经过md5加密后的数据。因此,也说明了,单纯的使用md5加密变得不太安全。所以,我们可以考虑对数据进行多次md5加密操作。彩虹表,据说可以猜测式的破解


语法:

string md5(string $str[,bool $raw_output = false])//计算md5的散列值



说明:

$str:原始字符串

$raw_output:如果可选的raw_output被设置为true, 那么md5报文摘要将以16字节长度的原始二进制格式返回。返回以 32位字符十六进制数字形式返回散列值。



Tips:

注册成功后的跳转:

echo "<meta http-equiv = 'refresh' content = '3'; url = login.html/>";




2.Crypt()加密算法

语法:

string crypt(string $str[,string $salt])//返回一个基于标准UNIX DES算法或系统上其他可用的代替算法的散列字符串。



说明:

$str:需要加密的明文。

$salt:加密时的干扰串,使编码更安全。(一般为2个字符,称之为“盐值”)


注意:

如果加密时没有加上这个$salt参数上,将随机生成一个干扰串,否则刷新加密密文不变

3.Sha1()加密算法

语法:

string sha1(string $str[,bool $raw_output = false])//计算字符串的sha1散列值,返回sha1散列值字符串。



说明:

$str:加密的字符串

$raw_output:如果可选的raw_output被设置为true, 那么sha1摘要将以20字符长度的原始格式返回,否则返回值是一个40字符长度的十六进制数字。

4.URL编码加密技术

4.1 urlencode(string $str):编码URL字符串

$str:要解码的字符串

返回值:返回编码后的字符串

编码规范:此字符串中除了-_.之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)


常见的编码转换

?——%3F

=——%3D

空格——+

%——%25

&——%26

\——%5C

+——%2B

当我们要在地址栏中出入带有特殊符号的字符串时,又该如何处理呢?我们可以用urlencode()对字符串提前编码处理一下。


4.2 urldecode(string $str):解码已编码的URL字符串

$str:要解码的字符串

返回值:返回解码后的字符串


与之类似的两个函数如下:

rawurlencode(string $str):按照RFC1738对URL进行编码

$str:要解码的字符串

返回值:返回字符串,把空格编码为%20(唯一区别)


rawurldecode(string $str):

$str:要解码的字符串

返回值:返回字符串,此字符串中百分号%后跟两位十六进制的序列都将被替换成原义字符。

5.Base64编码加密技术

(只能说是一种数据编码算法)

图片可通过此方式处理

5.1 base64_encode(string $data):使用base64对data进行编码

$data:要编码的数据


5.2 base64_decode(string $data[,bool $strict = false]):对使用MIME base64编码的数据进行解码

$strict:如果输入的数据超出了base64字母表,则返回false

Tips:

[code]//获取到图片编码之后的数据
<?php
$fliename="1.jpg";
$data=file_get_contents($filename);
echo base64_encode($data);
?>


>在HTML的img标签中如何书写:

[code]<img src="data:image/jpeg;base64,经过编码后的图片数据">
或者
<img src="data:;base64,经过编码后的图片数据">


6.信息加密技术总结

单项散列加密:

单项散列加密是指通过对不同输入长度的信息进行散列计算,得到固定长度的输出,这个散列计算过程是单向的,即不能对固定长度的输出进行计算从而获得输入信息。




对称散列加密:

对称加密是指加密和解密使用的密钥是同一个密钥或者可以互相推算。




非对称散列加密(主要用于信息安全传输,以及数字签名):

非对称加密和解密使用的密钥不是同一个密钥,其中一个对外公开,被称作公钥,另一个只有所有者知道。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: