decode_cjs.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. // 加解密模块
  2. const crypto = require('crypto');
  3. function md5(str) {
  4. let md5 = crypto.createHash('md5');
  5. md5.update(str);
  6. return md5.digest('hex');
  7. }
  8. // 将密码原文转为加密字符串
  9. // 获取md5摘要, 获取前面2位与后面2位, 反转首尾, 生成新的md5摘要, 重新将前后两位添加至首尾
  10. /**
  11. * 将密码原文转为数据库存储字符串
  12. * @param passwdStr 密码原文
  13. * @returns {string}
  14. * @constructor
  15. * 获取md5摘要, 获取前面2位与后面2位, 反转首尾, 生成新的md5摘要, 重新将前后两位添加至首尾
  16. */
  17. function passwdToSave(passwdStr) {
  18. let _passwd = '';
  19. let _passwdHead = '';
  20. let _passwdTail = '';
  21. // 获取md5摘要
  22. _passwd = md5(passwdStr);
  23. // 获取前面2位与后面2位
  24. _passwdHead = _passwd.substring(0, 2);
  25. _passwdTail = _passwd.substring(-2);
  26. // 反转首尾
  27. _passwd = _passwd.split('').reverse().join('');
  28. // 生成新的md5摘要
  29. _passwd = md5(_passwd);
  30. // 重新将前后两位添加至首尾
  31. _passwd = _passwdHead + _passwd + _passwdTail;
  32. return _passwd;
  33. }
  34. /**
  35. * 将加密字符串转为密码原文
  36. * @param passwdStr
  37. * @returns {*|string}
  38. */
  39. function decodePasswd(passwdStr) {
  40. let _passwd = '';
  41. // 反转首尾
  42. _passwd = passwdStr.split('').reverse().join('');
  43. return _passwd;
  44. }
  45. module.exports = {
  46. md5,
  47. decodePasswd,
  48. passwdToSave
  49. }