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

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个字符)。

良心推荐

好用的装修app推荐
  • 造作新家app手机版
  • 最美装修app下载
  • 爱空间装修app下载
  • 土巴兔装修免费下载
  • 土巴兔装修app官方下载
  • 齐家装修app下载
新家装修是一件大事,有时候也是有很多的人遇到的麻烦的事情很痛苦,也是花了不少冤枉钱,但是其实这都是没有提前的用手机的一些装修软件去提前的进行对装修事项还有各种装修材料包括设计上的一些认知和了解,装修这是一个大工程并不能马虎,想要知晓装修还有各种设计风格等就来推荐给你很多好用又实在的装修软件。

相关资讯