将一个密码哈希脚本从GO转换为Node.js

huangapple go评论85阅读模式
英文:

Converting a Password Hashing Script from GO to Nodejs

问题

我很难将现有的GO脚本转换为NodeJS。它基本上是一个哈希脚本,接受两个参数agreedUponKeysalt,并返回一个密码哈希值。

我已经编写了以下代码:

var crypto = require('crypto');
var convert = require('convert-string');

function test(pwd, key) {
  console.log("Password :", pwd);
  var byteKey = convert.stringToBytes(key);
  var bytePwd = convert.stringToBytes(pwd);
  var hash = crypto.createHash('sha256').update(byteKey + bytePwd).digest('base64');
  console.log("hashcode of password :", hash);
};
test("XYZabc987", "giri");

这两个哈希值是不同的。任何帮助将不胜感激。我对GO语言不太了解。

请注意:你可以使用https://play.golang.org/来编译和运行GO脚本。

英文:

I have a hard time converting an existing GO script to NodeJS. It basically a hashing script which takes in 2 arguments agreedUponKey and salt and returns a password hash.

package main

import (
    "fmt"
    "hash"
    "crypto/sha256"
)

func main() {
    var agreedUponKey string
    var salt string
    var h hash.Hash

    agreedUponKey = "giri"
    salt = "XYZabc987"

    h = sha256.New()
    h.Write([]byte(agreedUponKey))
    h.Write([]byte(salt))

    sha256Sum := h.Sum(nil)
    print("calculated passwordHash:", sha256Sum)

    var hexHash = make([]byte, 0, 64)
    for _, v := range sha256Sum {
        hexHash = append(hexHash,[]byte(fmt.Sprintf("%02x", v))...)
    }

    print("calculated passwordHash:", string(hexHash))
}

I have managed to code up to the below point

var crypto = require('crypto');
var convert = require('convert-string');

function test(pwd,key) {
  console.log("Password :",pwd);
  var byteKey=convert.stringToBytes(key);
  var bytePwd=convert.stringToBytes(pwd);    
  var hash = crypto.createHash('sha256').update(byteKey+bytePwd).digest('base64');
  console.log("hashcode of password :",hash);
};
test("XYZabc987","giri");

The 2 hashes are different. Any help would be greatly appreciated. I am a Noob in GO Lang

Please Note : You can use https://play.golang.org/ to compile and run the Go Script

答案1

得分: 1

var crypto = require('crypto');
function test(pwd, key) {
var input = key.concat(pwd)
var hash = crypto.createHash('sha256').update(input).digest('hex');
console.log("密码的哈希码:", hash);
};
test("XYZabc987", "giri");

你可以使用这个在线工具验证正确的哈希值。

英文:
var crypto = require('crypto');
function test(pwd, key) {
    var input = key.concat(pwd)
    var hash = crypto.createHash('sha256').update(input).digest('hex');
    console.log("hashcode of password :", hash);
};
test("XYZabc987", "giri");

You could verify the correct hash using this online tool.

huangapple
  • 本文由 发表于 2017年2月6日 16:16:16
  • 转载请务必保留本文链接:https://go.coder-hub.com/42063110.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定