首页 > 解决方案 > PHP password_verify 不适用于 utf-8 字符集

问题描述

我已经更新了我的数据库连接以包含以下“SET NAMES utf8”,因为我已经完成了我的 password_verify() 不起作用,现在我似乎无法将它设置回来,因为我没有知道默认值是什么。

从我所做的阅读来看,这是哈希与物理眼睛匹配的问题,但严格编码不匹配。所以我知道问题是什么,但似乎没有地方告诉你如何解决它?

我正在使用的哈希是:

$password = password_hash($password, PASSWORD_BCRYPT, array('cost' => 12));

和验证功能:

password_verify($password,$db_user_password)

我看到它的方式有两个选择 - 要么以某种方式将哈希更改为正确的编码,要么将 mysql db 更改回默认编码(无论可能是什么) - 除非有人知道更好的方法?

更新:

密码哈希为:$2y$12$CFnfRWoyCs.q1dWWXaQiWOlVUFEO.z8AY.lyHBfJSMdn/YmbhkieK

明文密码为:123

标签: phpmysqlutf-8

解决方案


推荐阅读