aes_util.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import CryptoJS from './aes.js'; // 引用AES源码js
  2. const key = CryptoJS.enc.Utf8.parse("Sp5biS+gX+#CqAFF"); // 十六位十六进制数作为秘钥
  3. const iv = CryptoJS.enc.Utf8.parse('ud2E8l6wchltwIDA'); // 十六位十六进制数作为秘钥偏移量
  4. // aes解密方法
  5. function AesDecrypt(word) {
  6. let encryptedHexStr = CryptoJS.enc.Hex.parse(word);
  7. let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
  8. let decrypt = CryptoJS.AES.decrypt(srcs, key, {
  9. iv: iv,
  10. mode: CryptoJS.mode.CBC,
  11. padding: CryptoJS.pad.Pkcs7
  12. });
  13. let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
  14. return decryptedStr.toString();
  15. }
  16. // aes加密方法
  17. function AesEncrypt(word) {
  18. let srcs = CryptoJS.enc.Utf8.parse(word);
  19. let encrypted = CryptoJS.AES.encrypt(srcs, key, {
  20. iv: iv,
  21. mode: CryptoJS.mode.CBC,
  22. padding: CryptoJS.pad.Pkcs7
  23. });
  24. return encrypted.ciphertext.toString().toUpperCase();
  25. }
  26. // base64加密方法
  27. function Base64Encode(val) {
  28. let str = CryptoJS.enc.Utf8.parse(val);
  29. let base64 = CryptoJS.enc.Base64.stringify(str);
  30. return base64;
  31. }
  32. // base64解密方法
  33. function Base64Decode(val) {
  34. let words = CryptoJS.enc.Base64.parse(val);
  35. return words.toString(CryptoJS.enc.Utf8);
  36. }
  37. export default {
  38. AesEncrypt,
  39. AesDecrypt,
  40. Base64Encode,
  41. Base64Decode
  42. }