12月31, 2019

php加密

加密形式

  1. md5加密

    mdt($str,$raw_output=false) 默认返回32个字符长度, 如果为true,返回16个字符长度

  2. sha1加密

    sha1($str,$raw_output=false) 默认返回40个字符长度, 如果为true,返回20个字符长度

  3. crypt加密

    string crpyt($str,$salt) 返回一个基于标准unix des算法 或系统上其他可替代算法的散列字符串
    $str:需要加密的明文
    $salt:加密时的干扰串,使编码更安全(基于des:2个字符 长度;基于md5:12个字符) 如加密时没有加$salt,将速记生成一个干扰串,否则刷新

    加密密文不变
    
  4. url编码加密

    urlencode($str) 编码 空格编码为+ urldecode($str) 解码 rawurlencode rawurldecode 空格编码为%20

  5. base64编码加密

    base64_encode($data) base64_decode($data,$strict=false) 设为true,如果
    超出base64编码返回false

  1. 单项散列加密
    md5、sha1
  2. 对称散列加密
    DES加密(已被破解)

    AES加密步骤:

    字节替换->列移动->混合列->与密钥进行异或

    AES解密步骤:

    字节替换<-列移动<-混合列<-与密钥进行异或

  3. 非对称散列加密

    RSA密码算法:

      - 公钥加密:
           - 密文=明文的E次方对N取余
           - 公钥:{E,N}  
      - 私钥解密:
           - 明文=密文的D次方对N取余
           - 私钥:{D,N}  
    

    RSA密码算法的缺点,算法速度慢,运算次数多,不适合加密长文本;有点破解私钥中的D,随着D长度增大破解难度随之增大,现在RSA中使用的N的长度为2048比特以上。

本文链接:http://zzl.bzpwhite.cn/post/encrypt.html

-- EOF --

Comments