md5/sha1+salt方式是目前各大cms常用的加密方式,虽然salt安全,但是各大md5网站也在研究这个方向,那么我们应该选择password_hash动态hash来助力,一种密码有多种hash结果.看代码模拟登陆.
<?php
//01.注册
$user ='zhangsan';
$pass = '123456';
$hash = password_hash($pass, PASSWORD_DEFAULT);
//02.保存用户名和生成的随机hash到数据库,省略代码
//03.用户尝试用原来的密码登录
$pass = '123456';
if (password_verify($pass,$hash)) {
echo "登录成功!";
} else {
echo "登录失败!";
}
//04.用户尝试用错误的密码登录
$pass = '654321';
if (password_verify($pass,$hash)) {
echo "登录成功!";
} else {
echo "登录失败!";
}
?>password_hash()创建的哈希密码更加安全,但是无法使用其他语言来验证
php官方的超全局变量$_SERVER['PHP_SELF']也能直接获取,只不过如果url参数太多也会获取。下面提供一个方法获取/* * 获取当前PHP文件名称 */ if (!function_exists('phpself...
面试中PHP面试官会问调用一个不存在的方法,如何知道是哪个文件哪行调用的?假设方法是getWorkLoad()回答1:开启PHP错误输出,PHP会输出Fatal error: Call to undefined function getWorkLoad() in D:\wwwroot\thinkpa...
【一】.介绍session由于HTTP是无状态的请求,创建一个会话需要保持必须需要身份标识。当用户第一次访问,PHP会为用户创建一个唯一的sessionid,并将sessionid通过cookie发送给浏览器,并在服务器的临时文件创建一个以sessionid为名的文件用来保存这个sessionid保...
<?php //php7+ define('CONFIG', [ 'MYSQL' => '127.0.0.1',  ...
<?php //如果支持exec函数,可以使用的方式 exec('chcp 65001'); //如果exec函数因安全问题禁用,可以使用的方式 pclose(popen('chcp 65001', 'r'));...
概念请参考w3school文章: redis watch ,redis exec (看完基本秒懂)(1)基本事务://连接本地的 Redis 服务 $redis = new Redis(); $redis->con...