PHP加密技术

加密技术简介:对明文数据信息通过不同的算法进行加密处理,形成一种新的密文(乱码形式),通过输入秘钥进行数据解析

 

加密算法分类:

1. 单向散列加密:

指通过对不同输入长度的信息进行散列计算,得到固定长度的输出,这个散列计算过程是单向的,即不能对固定长度的输出进行计算获得输入信息,salt又称为盐值

在单向加密中使用的主要算法有:MD5、sha1、crypt等。

 

2. 对称加密算法:

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

优点:开销小,适用于大量同一类型数据的加密

缺点:加密解密秘钥相同,一旦秘钥被盗,存在安全隐患

对称加密的常用算法有: DES算法,3DES算法,TDEA算法,Blowfish算法,RC5算法,IDEA算法,PHP中包含:urlencode()/urldecode(),base64_encode()/base64_decode()

3. 非对称加密技术:

非对称加密和解密使用的秘钥不相同,其中一个对外公开,称之为公钥,另一个不对外公开,只有开发者知道。

举例:

  1. 乙方生成一对密钥(公钥和私钥)并将公钥向其它方公开。
  2. 得到该公钥的甲方使用该密钥对机密信息进行加密后再发送给乙方。
  3. 乙方再用自己保存的另一把专用密钥(私钥)对加密后的信息进行解密。乙方只能用其专用密钥(私钥)解密由对应的公钥加密后的信息。

在非对称加密中使用的主要算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等。

 

PHP中常用加密算法:

1.Md5加密技术:常用加密算法,以散列值形式进行加密,单向加密函数,不可逆过程,通常用于大型网站的注册密码

        用法:md5("变量",$raw_output),默认以32位字符16进制形式返回散列值,若第二参数设为true,则返回16字节的原始二进制格式数据

 

2.Base64加密技术:常用加密算法,base64_endoce()/base64_decode(),将二进制数据转化为Ascal码字符

特点:将非Ascall码字符转化为该字符进行传输(图片,音频等)

用法:base64_encode($str);base64_decode($str,bool)

 

3.URL编码加密技术:  urlencode()/urldecode();rawurlencode()/rawurldecode()

(1) urlencode()/urldecode()

用法:urlencode('编码字符串');urldecode('解码字符串');

注意:字符串中除了 -_.之外所有非字母数字字符都将被替换为 %加两位十六进制数空格被编码为 +

//常见符号编码结果:

? -> %3F;= -> %3D; -> +;% -> %25;& -> %26;\ -> %5C;+ -> %2B;

(2) rawurlencode()/rawurldecode()

用法:rawurlencode("编码字符串");rawurldecode("解码字符串");

与urlencode()/urldoecde()区别:将空格变为%20,不再是+

 

4.Crypt加密技术(不常用):基于MD5/DES算法加密,单向加密函数,不可逆过程,返回散列字符串

        用法:crypt('变量名','加密干扰串'); //没有写干扰串的前提下,每次刷新自动生成

        例:(1)基于DES算法加密:crypt('变量名',‘im’);

(2)基于MD5算法加密:crypt('变量名',‘$1$xxxxxxxx$’)

5.Sha1加密技术:单向加密函数,不可逆过程,返回散列值,与MD5加密方式略有不同,默认返回40位长度加密字符串,设置参数为true返回20位的16进制数字

用法:sha1("变量",$raw_output)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值