add user api
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user