博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP常见的加密技术
阅读量:6708 次
发布时间:2019-06-25

本文共 1154 字,大约阅读时间需要 3 分钟。

PHP中几种常见的加密形式

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

md5加密

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

crypt加密

  • crypt也是单向的,只能加密,不能解密
  • 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

你可能感兴趣的文章
VS进程附加的使用
查看>>
Myeclipse下的Tomcat映射问题
查看>>
1168:大整数加法
查看>>
Python 学习日记2
查看>>
jquery函数
查看>>
《游戏引擎架构》笔记三
查看>>
[LeetCode]Palindrome
查看>>
Lua学习笔记(3):运算符
查看>>
POJ 3259 Wormholes
查看>>
SQL*Loader使用详解(一)
查看>>
hdu 5012(bfs)
查看>>
hdu2795 线段树 贴广告
查看>>
如何快速带领实习生进入角色
查看>>
用ListView实现对数据库的内容显示
查看>>
用Codis实现Redis分布式集群
查看>>
时间、时间戳相关小结 - iOS
查看>>
uvm_factory——我们的工厂(一)
查看>>
amfphp中文乱码解决方法
查看>>
LDAP学习笔记
查看>>
Mysql增加、删除和修改列属性和约束,和一些有用的查询语句
查看>>