mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-31 11:05:54 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			34 lines
		
	
	
		
			665 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			665 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
 | |
| 'use strict';
 | |
| 
 | |
| var bcrypt = require('bcryptjs'),
 | |
| 	async = require('async');
 | |
| 
 | |
| 
 | |
| process.on('message', function (msg) {
 | |
| 	if (msg.type === 'hash') {
 | |
| 		hashPassword(msg.password, msg.rounds);
 | |
| 	} else if (msg.type === 'compare') {
 | |
| 		bcrypt.compare(msg.password, msg.hash, done);
 | |
| 	}
 | |
| });
 | |
| 
 | |
| function hashPassword(password, rounds) {
 | |
| 	async.waterfall([
 | |
| 		function (next) {
 | |
| 			bcrypt.genSalt(parseInt(rounds, 10), next);
 | |
| 		},
 | |
| 		function (salt, next) {
 | |
| 			bcrypt.hash(password, salt, next);
 | |
| 		}
 | |
| 	], done);
 | |
| }
 | |
| 
 | |
| function done(err, result) {
 | |
| 	if (err) {
 | |
| 		process.send({err: err.message});
 | |
| 		return process.disconnect();
 | |
| 	}
 | |
| 	process.send({result: result});
 | |
| 	process.disconnect();
 | |
| } |