密码验证流程

<?php
// +--------------------------------------------------------------+ //
// | 密码验证流程                                                 | //
// +--------------------------------------------------------------+ //

// 把密码明文进行三次哈希运算后再传递给后端(注:此处为模拟前端操作)
$password = 'admin'; // 用户输入的密码明文
$hash = md5($password);        // 第1次哈希运算(使用md5算法)
$hash = hash('sha256', $hash); // 第2次哈希运算(使用sha256算法)
$hash = hash('sha512', $hash); // 第3次哈希运算(使用sha512算法)

// 后端接收到前端传递过来的密码哈希再进行三次哈希运算
$hash = md5($hash);            // 第1次哈希运算(使用md5算法)
$hash = hash('sha256', $hash); // 第2次哈希运算(使用sha256算法)
$hash = hash('sha512', $hash); // 第3次哈希运算(使用sha512算法)

// 从数据库查出用户的密码哈希(注:此处为查询数据库模拟操作)
$hashFromDB = password_hash($hash, PASSWORD_DEFAULT); // $2y$10$O1wqz84z9KOswLsHu4C0JOyXsTd6w08zPxugOPVC7G8XBRsOibTVm

// 检查密码是否正确
if (password_verify($hash, $hashFromDB)) {
    echo '密码正确' . PHP_EOL; // 密码正确
} else {
    echo '密码错误' . PHP_EOL;
}

Copyright © 2024 码农人生. All Rights Reserved