我用Node建立了一个站点.js+passport用于用户身份验证.

现在我需要迁移到Golang,需要使用数据库中保存的用户密码进行身份验证.

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();
        });
    });

如何使字符串与哈希 node 相同.和Golang在一起?

推荐答案

golang.org/x/crypto/bcrypt美元的价格,我相信相当于:

hashedPassword, err := bcrypt.GenerateFromPassword(password, bcrypt.DefaultCost)

Working example:

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
}

Node.js相关问答推荐

无法验证叶签名|无法验证第一个证书

为高流量网站优化Node.js实时通知服务

(0,core_1.default)不是使用@middy/core的lambda处理程序上的函数

如何防止Socket-io实例化React/Next.js中的两个套接字(当前在服务器*和*客户端实例化)

Sequelize、postgres和posgis:在n°;公里

如何使用 Node.js 连接到 Cloud SQL?

TS[2339]:类型 '() => Promise<(Document & Omit) | 上不存在属性空>'

我如何在 Raku 的供应中注册不同的事件?

在 linux mint 上部署 node 应用程序的最简单方法是什么?

kubernetes 上的 nextjs 无法启动

(Mongoose) 删除 TTL 字段失败

node.js 中 pdfkit-tables 中的垂直线

Ansible 将以什么用户身份运行我的命令?

如何使用 mocha.js 模拟用于单元测试的依赖类?

NodeJS为exec设置环境变量

判断一个数组中的每个元素是否都在第二个数组中

AngularJS +sails.js

使用 pg-promise 进行多行插入

为什么我会收到错误:解决方法指定过多?

node.js 在控制台上显示未定义