secret.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. const CryptoJS = require('crypto-js'); //引用AES源码js
  2. const keyStr = "===JYH5_H==="; //十六位十六进制数作为密钥
  3. const ivStr = ''; // 偏移量
  4. function Encrypt(data) {
  5. var key = CryptoJS.enc.Utf8.parse(keyStr);
  6. var iv = CryptoJS.enc.Utf8.parse(ivStr);
  7. var encrypted = CryptoJS.AES.encrypt(data, key, {
  8. iv: iv,
  9. mode: CryptoJS.mode.ECB,
  10. padding: CryptoJS.pad.Pkcs7
  11. });
  12. //返回的是base64格式的密文
  13. return encrypted.ciphertext.toString();
  14. }
  15. // encrypted 为是base64格式的密文
  16. function Decrypt(encrypted) {
  17. var encryptedHexStr = CryptoJS.enc.Hex.parse(encrypted);
  18. var srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
  19. var key = CryptoJS.enc.Utf8.parse(keyStr);
  20. var iv = CryptoJS.enc.Utf8.parse(ivStr);
  21. var decrypted = CryptoJS.AES.decrypt(srcs, key, {
  22. iv: iv,
  23. mode: CryptoJS.mode.CBC,
  24. padding: CryptoJS.pad.Pkcs7
  25. });
  26. return decrypted.toString(CryptoJS.enc.Utf8);
  27. }
  28. // 测试加、解密
  29. // function testAES() {
  30. // var data = "1234567890123456"; // 明文
  31. // console.log("加密前:" + data);
  32. // // 测试加密
  33. // var encrypted = Encrypt(data); // 密文
  34. // console.log("加密后: " + encrypted);
  35. // // var decryptedStr = Decrypt(encrypted);
  36. // // console.log("解密后: " + decryptedStr);
  37. // }
  38. // testAES()
  39. export default {
  40. Decrypt,
  41. Encrypt
  42. }