Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to compute an SHA256 hash and Base64 String encoding in JavaScript/Node

I am trying to recreate the following C# code in JavaScript.

SHA256 myHash = new SHA256Managed();
Byte[] inputBytes = Encoding.ASCII.GetBytes("test");
myHash.ComputeHash(inputBytes);
return Convert.ToBase64String(myHash.Hash);

this code returns "n4bQgYhMfWWaL+qgxVrQFaO/TxsrC4Is0V1sFbDwCgg="

This is what I have so far for my JavaScript code

var sha256 = require('js-sha256').sha256;
var Base64 = require('js-base64').Base64;

var sha256sig = sha256("test");

return Base64.encode(sha256sig);

the JS code returns "OWY4NmQwODE4ODRjN2Q2NTlhMmZlYWEwYzU1YWQwMTVhM2JmNGYxYjJiMGI4MjJjZDE1ZDZjMTViMGYwMGEwOA=="

These are the 2 JS libraries that I have used

js-sha256

js-base64

Does anybody know how to make it work ? Am I using the wrong libs ?

like image 361
klugjo Avatar asked May 10 '16 02:05

klugjo


1 Answers

You don't need any libraries to use cryptographic functions in NodeJS.

const crypto = require('crypto');

const hash = crypto.createHash('sha256')
                   .update('test')
                   .digest('base64');
console.log(hash); // n4bQgYhMfWWaL+qgxVrQFaO/TxsrC4Is0V1sFbDwCgg=
like image 186
Vikram Tiwari Avatar answered Oct 09 '22 10:10

Vikram Tiwari