laravel数据库密码加密和解密


1.创建加密路由

      //加密算法
      Route::get('admin/jiami','Admin\LoginController@jiami');

2.创建加密控制器方法

    public function jiami()
    {
    }

3.md5加密

  • md5加密算法
    //md5加密算法
    public function jiami()
    {
        //md5加密,生成一个32位的字符
        $str = '123456';
        return md5($str);
    }
  • 页面显示:
      e10adc3949ba59abbe56e057f20f883e
  • md5加密一般加盐值:
    $str = 'salt'.'123456';
      salt为自定义的盐值

4.哈希加密

  • 哈希加密
    public function jiami()
    {
        //哈希加密
        $str = '123456';
  //Hash的make方法用来给字符串加密
        return Hash::make($str);        
    }
  • 页面显示:
      $2y$10$JTlLYvlfA0IO.0G36VQ/5.gFk56kBRr5zDo9VpXORfhpCXwVs7Dhm
  • 每次刷新页面,每次生成的字符串都不同
  • 如何判断用户输入的密码和数据库中的密码相同
   //Hash::check(需要验证的字符串,数据库中取出来的加密的字符串)
            $str = '123456';
            $hash = Hash::make($str);
   //Hash的check方法用来对未加密的密码和已加密的密码进行比较
            if(Hash::check($str,$hash)){
                return '密码正确';
            }else{
                return '密码错误';
            }

5.crypt加密

  • crypt加密
    public function jiami()    {
   // crypt加密,生成255位字符串
            $str = '123456';
   //Crypt的encrypt方法用来加密字符串
            $crypt_str = Crypt::encrypt($str);
            return $crypt_str;    
    }
  • 页面显示:
eyJpdiI6IkRZRHZ0cjI0cTR5cVBsVHBCTlNFWmc9PSIsInZhbHVlIjoicGxIaFd1d2tVK08yRkw0NFdlQ3liZz09IiwibWFjIjoiNjhiYmQ3ZTQ2ZmY4ZTY5YTdmZTgwZDdjZDdhN2RlMjY1ZDUxMzcyN2Q3NzYyYmE0MDA0YWQwY2IyMzc2Yjg4MCJ9
  • crypt解密
$str = '123456';                          $crypt_str='eyJpdiI6IkRZRHZ0cjI0cTR5cVBsVHBCTlNFWmc9PSIsInZhbHVlIjoicGxIaFd1d2tVK08yRkw0NFdlQ3liZz09IiwibWFjIjoiNjhiYmQ3ZTQ2ZmY4ZTY5YTdmZTgwZDdjZDdhN2RlMjY1ZDUxMzcyN2Q3NzYyYmE0MDA0YWQwY2IyMzc2Yjg4MCJ9';

//Crypt的decrypt方法用来解密字符串
if (Crypt::decrypt($crypt_str) == $str) {
   return '密码正确';
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM