У меня есть модуль аутентификации с методами, которые я хотел бы использовать на сервере.Я хотел бы использовать метод rndString () как в самом модуле, так и экспортировать его для использования другими способами в приложении.Что я делаю не так, чтобы это не работало?
const crypto = require('crypto');
let sha512 = (password, salt) => {
let hash = crypto.createHmac('sha512', salt);
hash.update(password);
let value = hash.digest('hex');
return {
salt: salt,
passwordHash: value
}
};
module.exports = {
rndString: (length) => {
return crypto.randomBytes(Math.ceil(length/2))
.toString('hex')
.slice(0,length);
},
hashId: (id) => {
let key = crypto.createCipher('aes-128-cbc', 'kranky');
let hash = key.update(id, 'utf8', 'hex');
hash += key.final('hex');
return hash;
},
saltPass: (userpassword) => {
let salt = this.rndString(16);
let passwordData = sha512(userpassword, salt);
return {
hashValue: passwordData.passwordHash,
salt: passwordData.salt
}
},
userSalt: (userpassword, salt) => {
let passwordData = sha512(userpassword, salt);
return passwordData.passwordHash;
}
};