// 加解密模块 const crypto = require('crypto'); function md5(str) { let md5 = crypto.createHash('md5'); md5.update(str); return md5.digest('hex'); } // 将密码原文转为加密字符串 // 获取md5摘要, 获取前面2位与后面2位, 反转首尾, 生成新的md5摘要, 重新将前后两位添加至首尾 /** * 将密码原文转为数据库存储字符串 * @param passwdStr 密码原文 * @returns {string} * @constructor * 获取md5摘要, 获取前面2位与后面2位, 反转首尾, 生成新的md5摘要, 重新将前后两位添加至首尾 */ function passwdToSave(passwdStr) { let _passwd = ''; let _passwdHead = ''; let _passwdTail = ''; // 获取md5摘要 _passwd = md5(passwdStr); // 获取前面2位与后面2位 _passwdHead = _passwd.substring(0, 2); _passwdTail = _passwd.substring(-2); // 反转首尾 _passwd = _passwd.split('').reverse().join(''); // 生成新的md5摘要 _passwd = md5(_passwd); // 重新将前后两位添加至首尾 _passwd = _passwdHead + _passwd + _passwdTail; return _passwd; } /** * 将加密字符串转为密码原文 * @param passwdStr * @returns {*|string} */ function decodePasswd(passwdStr) { let _passwd = ''; // 反转首尾 _passwd = passwdStr.split('').reverse().join(''); return _passwd; } module.exports = { md5, decodePasswd, passwdToSave }