· 7 years ago · Apr 19, 2018, 06:56 AM
1const genRandomString = function(length){
2 return crypto.randomBytes(Math.ceil(length/2))
3 .toString('hex') /** convert to hexadecimal format */
4 .slice(0,length); /** return required number of characters */
5};
6const sha512 = function(password, salt){
7 var hash = crypto.createHmac('sha512', salt); /** Hashing algorithm sha512 */
8 hash.update(password);
9 var value = hash.digest('hex');
10 return {
11 salt:salt,
12 passwordHash:value
13 };
14};
15
16exports.saltHashPassword = function (userpassword) {
17 var salt = genRandomString(20); /** Gives us salt of length 16 */
18 var passwordData = sha512(userpassword, salt);
19 return passwordData;
20 console.log('UserPassword = '+userpassword);
21 console.log('Passwordhash = '+passwordData.passwordHash);
22 console.log('nSalt = '+passwordData.salt);
23}
24
25/////////
26////////
27// Login
28//SECRET KEY maybe anything
29
30var jwt = require('jsonwebtoken');
31
32exports.verifyPassword = function(password, salt){
33 var hash = crypto.createHmac('sha512', salt); /** Hashing algorithm sha512 */
34 hash.update(password);
35 var value = hash.digest('hex');
36 return value;
37};
38exports.generateToken = function(dataItem,SECRET_KEY){
39 return jwt.sign({ email: dataItem.email }, SECRET_KEY);
40}