- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我加密用户的密码并保存到数据库。然后用户登录,比较散列密码和普通密码,我得到 crypto/bcrypt: hashedPassword is not the hash of the given password
错误。怎么了?
func encryptPassword(password string) (string, error) {
bytePass := []byte(password)
hashedPassword, err := bcrypt.GenerateFromPassword(bytePass, bcrypt.DefaultCost)
if err != nil {
log.Printf("ERROR:EncryptPassword: %s", err.Error())
}
return string(hashedPassword), err
}
func (i *Impl) Register(user User) bool {
hashedPass, err := encryptPassword(user.Password)
if err != nil {
return false
}
user.Password = hashedPass
if err := i.DB.Create(&user).Error; err != nil {
log.Printf("ERROR:Register: %s", err.Error())
return false
}
return true
}
func (i *Impl) Login(email string, password string) (User, error) {
var user User
i.DB.Where("email = ?", email).First(&user)
err := bcrypt.CompareHashAndPassword([]byte(user.Password), []byte(password))
if err != nil {
log.Printf("ERROR:Login: %s", err.Error())
return User{}, err
}
return user, err
}
最佳答案
我敢打赌,在将 user.Password
传递给 encryptPassword
之前,您的 Register
函数中的 user.Password
是空的,因此会导致对空密码进行哈希处理就像您提供的一样 ($2a$10$rqHJJTHsxMbtX/5ZjG1mFuWyYbUDW1PLbfwQRN0uChwes38c/0m3e
)。
关于hash - 加密/bcrypt : hashedPassword is not the hash of the given password,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35556253/
我有一个存储用户登录信息的表,其中包含以下方案中的密码: {crypt}散列密码 {ssha}散列密码加盐 {md5}哈希密码 ...... 是否有 Perl 模块可以理解此方案并能够验证给定纯文本密
我有这个实体: namespace FP.Domain.Entities { public class Admins { public int ID { get; se
我加密用户的密码并保存到数据库。然后用户登录,比较散列密码和普通密码,我得到 crypto/bcrypt: hashedPassword is not the hash of the given pa
func validateCredentials(attemptedPassword string, actualPasswordHash string) (bool, error) { if
我是一名优秀的程序员,十分优秀!