Cid*_*ang 56 go bcrypt node.js
我建立了一个带有Node.js + passport的站点,用于用户身份验证.
现在我需要迁移到Golang,并且需要使用db中保存的用户密码进行身份验证.
Node.js加密代码是:
var bcrypt = require('bcrypt');
bcrypt.genSalt(10, function(err, salt) {
if(err) return next(err);
bcrypt.hash(user.password, salt, function(err, hash) {
if(err) return next(err);
user.password = hash;
next();
});
});
Run Code Online (Sandbox Code Playgroud)
如何使用Golang与Node.js bcrypt创建相同的散列字符串?
ANi*_*sus 107
使用golang.org/x/crypto/bcrypt包,我相信相当于:
hashedPassword, err := bcrypt.GenerateFromPassword(password, bcrypt.DefaultCost)
Run Code Online (Sandbox Code Playgroud)
工作范例:
package main
import (
"golang.org/x/crypto/bcrypt"
"fmt"
)
func main() {
password := []byte("MyDarkSecret")
// Hashing the password with the default cost of 10
hashedPassword, err := bcrypt.GenerateFromPassword(password, 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
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29570 次 |
| 最近记录: |