PHP常见的加密技术

PHP中几种常见的加密形式

  • md5()加密算法
  • crypt()加密算法
  • sha1()加密算法
  • url()加密算法
  • base64()加密算法

md5加密

  • md5是单向的,只能加密,不能解密
  • 输入任意长度的值,输出的都是128位信息值
  • 不同的输入对应的一定是不同的输出,保证唯一性
  • md5还是会出现碰撞现象
  • 关于md5的详细介绍,包括优缺点,见:MD5及加密算法优劣

crypt加密

  • crypt也是单向的,只能加密,不能解密
  • crypt在不同系统上的加密算法是不一样的,参见:PHP手册-crypt
  • 需要两个参数,两个参数都是必选的,在PHP5之后:
    • 第一个参数是你需要加密的字符串
    • 第二个参数是干扰串(或者叫做密钥),最多两位字符,会加在密文的开头两位
  • 从 PHP 5.3.0 起,PHP 包含了它自己的实现,并将在系统缺乏相应算法支持的时候使用它自己的实现。

sha1加密

  • sha1也是单向的,只能加密,不能解密

URL编码加密

  • 两个函数:urlencode()和urldecode(),这个加密是双向的,能加密,页能解密
  • 加密规则:给定字符串中除了:字母,数字,下划线,中划线,点之外的其他所有字符都会被加密为百分号后跟两位的16进制数,空格被编码为加号
  • 与上面两个稍微有点不同的两个函数:rawurlencode()和rawurldecode()
    • 区别就是urlencode是把空格加密成加号(+),而rawurlencode是把空格加密成%20
    • 就这一个区别,推荐使用rawurlencode函数对,统一标准

base64加密

  • bsae64不是真正意义上的加密,而是对数据进行编码和解码
  • 是双向的,可以编码,也可以解码
  • 两个函数:base64_encode和base64_decode
  • 主要应用在图片的编码和解码上

总结:

信息加密技术分类

彩虹表百度百科

  • 单项散列加密
    • 是指:通过对不同输入长度的信息进行散列计算,得到固定长度的输出,这个散列计算的过程是单向的,即不能对固定长度的输出进行计算从而获得输入信息
  • 对称散列加密
    • 是指:加密和解密使用的密钥是同一个密钥或者可以互相推算
    • 优点:算法简单,效率高
    • 缺点:加解密使用的同一个密钥,如果密钥被盗,丢失,泄露,密文实际上就跟明文无差别
  • 非对称散列加密
    • 是指:加解密使用的密钥不是同一个密钥,其中一个对外公开,被称作公钥,另一个只有所有者知道
    • 用公钥加密的密文,只能使用私钥才能解开
    • 反之,用私钥加密的密文,也只能用公钥才能解开
    • 实际的意思就是说:加密的时候是一个密钥,解密是另一个密钥,其实并不区分什么是公私密钥
    • 应用领域:一般在信息安全传输和数字签名等

没有什么加密方式是能一劳永逸的,破解只是时间问题

转载于:https://juejin.im/post/5c28cd9b6fb9a049b506e828

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值