手机游戏
经典单机
角色扮演
休闲益智
动作冒险
射击枪战
赛车竞速
模拟经营
解密闯关
策略战争
手机软件
时尚购物
体育运动
资讯阅读
教育学习
摄影摄像
生活服务
效率办公
聊天社交
其它软件
新闻资讯
游戏攻略
软件教程
游戏问答
软件技术
叨叨念念
网站技术
技术问答
软件教程
资源资料
原创作品
代码学习
网页设计
网络技术
合集
合集
游戏合集
软件合集
资讯合集
视频合集
首页 > 代码学习 > 代码学习

emlog使用PHP5.5自带password_hash()函数

作者:星知苑 时间:2016-03-31 12:08:06

PHP5.5之后新加了两个密码相关的函数:password_hash(加密)和password_verify(验证)。

string password_hash ( string $password , integer $algo [, array $options ] )

boolean password_verify ( string $password , string $hash )

想到emlog使用的是passwordhash类来实现加密和解密的,正好使用这2个新函数来改造emlog程序。(该修改仅用于测试)

 

修改方法如下:

1、在include/lib/function.base.php添加加密函数[break]

function HashPassword($password) {
	return password_hash(md5($password), PASSWORD_DEFAULT);
}

2、修改admin/user.php,有2次,大概在50~51和126~130行

	$PHPASS = new PasswordHash(8, true);
	$password = $PHPASS->HashPassword($password);
改为
	$password = HashPassword($password);
	if (!empty($password)) {
		$PHPASS = new PasswordHash(8, true);
		$password = $PHPASS->HashPassword($password);
		$userData['password'] = $password;
	}
改为
	if (!empty($password)) {
		$password = HashPassword($password);
		$userData['password'] = $password;
	}

3、修改admin/blogger.php,大概在54~58行

	if (!empty($newpass)) {
        $PHPASS = new PasswordHash(8, true);
		$newpass = $PHPASS->HashPassword($newpass);
		$User_Model->updateUser(array('password'=>$newpass), UID);
	}
改为
	if (!empty($newpass)) {
		$newpass = HashPassword($newpass);
		$User_Model->updateUser(array('password'=>$newpass), UID);
	}

4、修改include/lib/loginauth.php,大概在119~126行

    public static function checkPassword($password, $hash) {
        global $em_hasher;
        if (empty($em_hasher)) {
            $em_hasher = new PasswordHash(8, true);
        }
        $check = $em_hasher->CheckPassword($password, $hash);
        return $check;
    }
改为
    public static function checkPassword($password, $hash) {
		return password_verify(md5($password),$hash);
    }

5、删除include/lib/passwordhash.php

6、修改install.php安装文件2处,大概在200-201行和426行

 

	$PHPASS = new PasswordHash(8, true);
	$adminpw = $PHPASS->HashPassword($adminpw);
改为 
	$adminpw =HashPassword($adminpw);
  password varchar(64) NOT NULL default '',
改为
  password varchar(255) NOT NULL default '',

 

由于加密方式改变,需要需改数据库里面用户的密码,因为使用了PASSWORD_DEFAULT最好把varchar的长度改为255. 

PASSWORD_DEFAULT - 使用 bcrypt 算法 (PHP 5.5.0 默认)。 注意,该常量会随着 PHP 加入更新更高强度的算法而改变。 所以,使用此常量生成结果的长度将在未来有变化。 因此,数据库里储存结果的列可超过60个字符(最好是255个字符)。

良心推荐

非常烧脑的解谜推理游戏
  • 白猫和废弃的病院手游安卓版下载
  • 迷室往逝破解版
  • 最后一棵树安卓中文版
  • 十三號修理店安卓版下载
  • 虚构世界游戏下载
  • 密室逃脱10侦探风云免费版下载
在现在人的头脑中都是有一个非常喜欢逻辑思维分析的,那么在游戏中也是可以存在的非常的好玩的解谜,又是能够杀死很多的脑细胞的推理游戏,相当的精彩的各种好玩的烧脑游戏全都推荐给你,有着很多的不同的游戏还有玩法,都是很烧脑的非常的好玩,绝对是值得你去下载娱乐,增加自己的智慧。

相关资讯