You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

登录验证时bcrypt密码匹配失败:crypto/bcrypt错误排查求助

密码哈希对比失败问题排查方案
  • 数据库字段长度不足:bcrypt生成的哈希字符串固定为60字符左右,若用户表中password字段长度设置小于60(比如varchar(50)),保存时会截断哈希值,导致登录时对比的哈希不完整,触发报错。检查表结构,确保password字段长度至少为60(推荐设为varchar(255))。

  • 注册流程密码二次哈希:检查services.SignUp函数,确认保存用户时没有再次对密码进行哈希或覆盖已哈希的值。如果SignUp内部重复执行哈希逻辑,会导致数据库存储的是二次哈希结果,登录时用明文对比自然不匹配。

  • 登录查询的用户数据异常:验证services.FindUserByEmail是否正确返回了目标用户,且password字段未被篡改。登录时可以打印user.Password的完整内容,和注册阶段生成的哈希值对比,确认两者是否一致。

  • 字符编码或存储损坏:虽然概率较低,但需确保数据库存储password字段时使用UTF-8编码,避免哈希值因编码转换损坏。你的代码中string(hash)的转换逻辑是正确的,bcrypt哈希本身是UTF-8兼容的字符串。

内容的提问来源于stack exchange,提问作者katorianh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 03:10:34