我使用Node.js护照设置了一个用于用户身份验证的网站。
现在我需要迁移到Golang,并需要使用保存在db中的用户密码进行身份验证。
Node.js加密代码是:
var bcrypt = require('bcrypt'); bcrypt.genSalt(10,function(err,salt) { if(err) return next(err); bcrypt.hash(user.password,salt,hash) { if(err) return next(err); user.password = hash; next(); }); });
如何使同一个散列的字符串作为Node.js bcrypt与Golang?
使用
golang.org/x/crypto/bcrypt软件包,我相信相当于:
hashedPassword,err := bcrypt.GenerateFromPassword(password,bcrypt.DefaultCost)
工作示例:
package main import ( "golang.org/x/crypto/bcrypt" "fmt" ) func main() { password := []byte("MyDarkSecret") // Hashing the password with the default cost of 10 hashedPassword,bcrypt.DefaultCost) if err != nil { panic(err) } fmt.Println(string(hashedPassword)) // Comparing the password with the hash err = bcrypt.CompareHashAndPassword(hashedPassword,password) fmt.Println(err) // nil means it is a match }
原文地址:https://www.jb51.cc/go/187716.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。