crypto 密码加密
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | 'use strict' ; var crypto = require( 'crypto' ); /** * generates random string of characters i.e salt * @function * @param {number} length - Length of the random string. */ var genRandomString = function (length){ return crypto.randomBytes(Math.ceil(length/2)) .toString( 'hex' ) /** convert to hexadecimal format */ .slice(0,length); /** return required number of characters */ }; /** * hash password with sha512. * @function * @param {string} password - List of required fields. * @param {string} salt - Data to be validated. */ var sha512 = function (password, salt){ var hash = crypto.createHmac( 'sha512' , salt); /** Hashing algorithm sha512 */ hash.update(password); var value = hash.digest( 'hex' ); return { salt:salt, passwordHash:value }; }; function saltHashPassword(userpassword) { var salt = genRandomString(16); /** Gives us salt of length 16 */ var passwordData = sha512(userpassword, salt); console.log( 'UserPassword = ' +userpassword); console.log( 'Passwordhash = ' +passwordData.passwordHash); console.log( 'nSalt = ' +passwordData.salt); } saltHashPassword( 'MYPASSWORD' ); saltHashPassword( 'MYPASSWORD' ); |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步