Bgrypt密码哈希在Golang(兼容Node.js)?
发布时间:2020-12-16 09:43:53 所属栏目:大数据 来源:网络整理
导读:我使用Node.js护照设置了一个用于用户身份验证的网站。 现在我需要迁移到Golang,并需要使用保存在db中的用户密码进行身份验证。 Node.js加密代码是: var bcrypt = require('bcrypt'); bcrypt.genSalt(10,function(err,salt) { if(err) return next(err); b
|
我使用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
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
