Node.js调用hashGen函数报错:TypeError: hashGen is not a function
解决TypeError: hashGen is not a function错误
Node.js的crypto模块中不存在hashGen这个方法,你应该使用官方提供的createHash方法来生成SHA-256哈希。结合你需要给密码加盐的需求,以下是正确的实现代码:
const crypto = require('crypto'); // 生成16字节的随机盐值,转为十六进制字符串存储 const salt = crypto.randomBytes(16).toString('hex'); // 替换为实际要处理的密码 const rawPassword = 'user_input_password'; // 将盐值与密码拼接后进行SHA-256哈希 const hashedPassword = crypto.createHash('sha256') .update(salt + rawPassword) .digest('hex'); // 存储时要同时保存盐值和哈希结果,后续验证密码需要用到相同的盐值 console.log('存储的盐值:', salt); console.log('存储的哈希密码:', hashedPassword);
额外提示
- 盐值必须随机生成,且每个密码对应独立的盐值,不能固定使用同一个盐值
- 单纯的SHA-256加盐哈希在生产环境中安全性有限,因为SHA算法运算速度快,容易被暴力破解。如果是生产环境的密码存储,更推荐使用
crypto.scrypt、bcrypt或argon2这类专门针对密码设计的慢哈希算法,它们能有效抵御暴力破解攻击
内容的提问来源于stack exchange,提问作者Isaac Copenhaver
相关产品推荐
相关产品推荐

