A-A+

PHP数据加密

2017年12月30日 php 暂无评论 阅读 2,308 views 次

PHP中常见加密形式:md5()、crypt()、sha1()、URL编码、base64编码.

 

一、md5()

单向加密。
使用方法:md5(string $str,[bool $default=false])
第二参数不给默认false,如果给true,那么返回的是16字节的原始二进制格式。
例如:
$str = 'dupeng';
echo md5($str);

 

二、Crypt()加密

单向加密。
语法:crypt(string $str,[string $salt])
$str,需要加密的明文;
$salt,加密时的干扰串。不给$salt时,会默认生成随机的2位$salt。
常用的有crypt_md5(),支持最长12位$salt;

 

三、sha1()加密算法

单向加密。
语法:sha1(sting $str,[bool $default=false]);
第二个参数默认为false,返回一个40字符长度的十六进制数字。
如果第二参数设置为true,那么sha1将以20字符长度的原始格式返回。

 

四、URL编码算法

urlencode(string $str);编码
urldecode(string $str);解码
编码规则:除了-_.之外的所有非字母数字字符都将被替换成百分号(%)后跟2位十六进制数。空格则编码为加号(+)。

用途,比如get方式提交参数,那么参数最好先urlencode编码再传递。比如参数中有&符号、中文等。

 

五、base64编码算法

主要用途是把非asc码字符转换为asc码字符。可以把图片中文等所有二进制数据转换为asc码字符。。常见于email邮件。
base64_encode(string $str);编码
base64_decode(string $str,[bool $default=false]);解码
如果解码时,第二参数设置为true,那么如果数据超出了base64字母表,则返回false。

例如邮件中常见的,base64图片制作

<?php
$filename = "1.jpg";
$data = file_get_contents($filename);
echo base64_decode($data);//把图片转换为base64编码

?>

可以把图片转换为base64编码保存,嘿嘿嘿嘿
当然保存的base64图片也可以html的img标签中使用,方法如下
<html>
<img src="data:image/jpeg;base64,这里写上图片的base64编码" alt="base64编码图片"/>
<img src="data:;base64,这里写上图片的base64编码" alt="base64编码图片"/>
</html>
这就是base64的主要用途,是不是很666?

 

当然,实际使用中,不会单独的使用这些加密方式,而是组合使用,甚至加上一些自己独特的处理方式,这样就防止破解了。

 

另外,还有对称加密和非对称加密。

对称加密,使用的加密和解密密钥都是一样的。
非对称加密,使用的加密和解密密钥不一样,这样就防止了公钥被盗后数据安全的问题。

标签:

给我留言