php - 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
解决方案
推荐阅读
- entity-framework - 实体框架 6 ReferentialConstraint 中的依赖属性映射到存储生成的列。错误
- bigdata - 大数据集示例
- javascript - 不使用模板引擎时如何在 Express.js 视图中包含 CSS 文件?
- scala - 如何使用 scala 方法创建文件?
- javascript - JS:函数未定义,无法创建 JSON 对象,因为 JS 无法识别键是字符串
- node.js - NestJS Swagger - 如何声明多选枚举字段?
- virtualbox - Minikube 与 Virtualbox 或 KVM 在 Centos 7 上使用大量 CPU
- javascript - 如何在我的 .js 文件中使用 npm 安装的包?
- python - 模块中的变量范围
- java - 如何强制 Red Hat OpenJDK 8 在 Windows 上像 AdoptOpenJDK 和 Oracle JDK 一样清晰地呈现字体?