aes_util.js 1.6 KB

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