b9258c7fb603b0481523335b26e92932cac65f4e.svn-base 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import CryptoJS from 'crypto-js'
  2. // 需要和后端一致
  3. const KEY = CryptoJS.enc.Utf8.parse('jinshui@12345678');
  4. const IV = CryptoJS.enc.Utf8.parse('jinshui@12345678');
  5. export default {
  6. /**
  7. * 加密
  8. * @param {*} word
  9. * @param {*} keyStr
  10. * @param {*} ivStr
  11. */
  12. encrypt (word, keyStr, ivStr) {
  13. let key = KEY;
  14. let iv = IV;
  15. if (keyStr) {
  16. key = CryptoJS.enc.Utf8.parse(keyStr);
  17. iv = CryptoJS.enc.Utf8.parse(ivStr);
  18. }
  19. let srcs = CryptoJS.enc.Utf8.parse(word);
  20. var encrypted = CryptoJS.AES.encrypt(srcs, key, {
  21. iv: iv,
  22. mode: CryptoJS.mode.CBC,
  23. padding: CryptoJS.pad.ZeroPadding
  24. });
  25. return CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
  26. },
  27. /**
  28. * 解密
  29. * @param {*} word
  30. * @param {*} keyStr
  31. * @param {*} ivStr
  32. */
  33. decrypt (word, keyStr, ivStr) {
  34. let key = KEY;
  35. let iv = IV;
  36. if (keyStr) {
  37. key = CryptoJS.enc.Utf8.parse(keyStr);
  38. iv = CryptoJS.enc.Utf8.parse(ivStr);
  39. }
  40. let base64 = CryptoJS.enc.Base64.parse(word);
  41. let src = CryptoJS.enc.Base64.stringify(base64);
  42. let decrypt = CryptoJS.AES.decrypt(src, key, {
  43. iv: iv,
  44. mode: CryptoJS.mode.CBC,
  45. padding: CryptoJS.pad.ZeroPadding
  46. });
  47. let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
  48. return decryptedStr.toString();
  49. }
  50. }