美文网首页
php第4课: 数据加密

php第4课: 数据加密

作者: 启蒙时代 | 来源:发表于2019-04-03 10:39 被阅读0次

    php第4课:数据加密

    时间 2019-04-03

    主讲 刘培富

    地点 在线分享,大家自学


    前一课,在验证用户提交的用户和密码上,是明文传输的,安全性不高。正式开发项目时,需要把用户的密码进行加密存储,在验证时,对用户提交的密码进行加密,然后再比对。

    本文,讲述两种加密方法:

    1、md5函数

    $str = "Shanghai";

    echo md5($str);    //32位小写

    echo strtoupper(md5($str));    //32位大写 

    echo substr(md5($str),8,16);   //16位小写

    echo strtoupper(substr(md5($str),8,16))   //16位大写

    按照md5加密的通用规范,生成密文。好处是不管长短、不管是否包含汉字,都可以,统一生成16位或32位的密文,且不可逆。

    2、自定义加密函数

    function encrypt($data, $key)

    {

    $data=iconv("gbk","utf-8",$data);

    $key = md5($key);

      $x = 0;

    $char=$str="";

      $len = strlen($data);

      $l = strlen($key);

      for ($i = 0; $i < $len; $i++)

      {

        if ($x == $l)

        {

        $x = 0;

        }

        $char .= $key{$x};

        $x++;

      }

      for ($i = 0; $i < $len; $i++)

      {

        $str .= chr(ord($data{$i}) + (ord($char{$i})) % 256);

      }

      return base64_encode($str);

    }

    $key = 'liupeifu';  // 密钥

    echo encrypt("aaa",$key);

    这个方法,好处是有密钥做参数,安全性更高。缺点是不能用汉字,且字符串过长时,加密后的字符也很长。

    一般来说,推荐方法一,对于安全性要求较高的,推荐方法二。

    相关文章

      网友评论

          本文标题:php第4课: 数据加密

          本文链接:https://www.haomeiwen.com/subject/kucybqtx.html