thinkphp 后台登陆密码加密传入密钥

2017-08-09  本文已影响309人  史史小子

后台登陆密码加密验证设置:

相关函数:

/**

* 对用户的密码进行加密

* @param $password

* @param $encrypt //传入加密串,在修改密码时做认证

* @return array/password

*/

function get_password($password, $encrypt='') {

     $pwd = array();

    $pwd['encrypt'] =  $encrypt ? $encrypt : get_randomstr();

    $pwd['password'] = md5(md5(trim($password)).$pwd['encrypt']);

    return $encrypt ? $pwd['password'] : $pwd;

}

/**

* 生成随机字符串

* @param string $lenth 长度

* @return string 字符串

*/

function get_randomstr($lenth = 6) {

      return get_random($lenth, '123456789abcdefghijklmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ');

}

/**

* 产生随机字符串

*

* @param    int        $length  输出长度

* @param    string    $chars  可选的 ,默认为 0123456789

* @return  string    字符串

*/

function get_random($length, $chars = '0123456789') {

    $hash = '';

    $max = strlen($chars) - 1;

    for($i = 0; $i < $length; $i++) {

        $hash .= $chars[mt_rand(0, $max)];

    }

    return $hash;

}

控制器方法:

/**

*$password 表单 提交过来的数据

*$user['encrypt'] 数据库数据

*/

if (!$user || ($user['password'] != get_password($password, $user['encrypt']))) {

$this->error('账号或密码错误');

}

上一篇下一篇

猜你喜欢

热点阅读