add user api

This commit is contained in:
Jay
2017-06-01 22:37:51 +08:00
parent ffb99a61d7
commit f785e05d4b
6 changed files with 143 additions and 11 deletions
+17
View File
@@ -1,20 +1,37 @@
var crypto = require('crypto');
/**
*
* @param {number} len
*/
var random = (len = 32) => {
var buf = crypto.randomBytes(len);
return buf.toString("hex");
}
/**
*
* @param {string} str
*/
var sha256 = (str) => {
return crypto.createHash("sha256").update(str).digest('base64');
}
/**
*
* @param {string} str
*/
var genPassHash = (str) => {
var hash = random(16);
var pass = sha256(str + hash);
return `$${hash}$${pass}`;
}
/**
*
* @param {string} plain
* @param {string} hash
*/
var comparePass = (plain, hash) => {
var match = hash.match(/^\$(.+?)\$(.+)$/);
if (match == null || match.length < 3 || !match[1] || !match[2]) return false;