2017-02-06 1 views
0

기존 GO 스크립트를 NodeJS로 변환하는 데 어려움이 있습니다. 그것은 기본적으로 2 개의 인수를 취하는 해싱 스크립트 agreedUponKey소금을 반환하고 암호 해시를 반환합니다.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 개의 해시가 다른까지 코딩 처리했다. 어떤 도움이라도 대단히 감사하겠습니다. 나는 GO 랭의 멍청한 놈입니다

참고 사항 : 당신은 당신이 online tool를 사용하여 올바른 해시를 확인할 수 컴파일 https://play.golang.org/를 사용하여 이동 스크립트

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

를 실행할 수 있습니다.

+0

그건 도움이 .. 아주 많이 고마워 !! –