2017-02-06 12 views
0

У меня есть трудное преобразование существующего кода GO в NodeJS. Это в основном хеширующий скрипт, который принимает 2 аргумента СогласенKey и соль и возвращает хэш пароля.Преобразование скрипта смены пароля из GO в Nodejs

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

мне удалось закодировать до следующей точки

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"); 

В 2 хэши различны. Любая помощь будет принята с благодарностью. Я Noob в GO Lang

Обратите внимание: Вы можете использовать https://play.golang.org/ скомпилировать и запустить Go Script

+0

В узловой части отсутствует «соль». –

+0

тест («XYZabc987», «giri»); мы отправляем его в качестве аргумента –

ответ

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("hashcode of password :", hash); 
}; 
test("XYZabc987", "giri"); 

Вы можете проверить правильность хэш с помощью этого online tool.

+0

Это помогло .. Большое спасибо! –