secret.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. const CryptoJS = require('crypto-js'); //引用AES源码js
  2. const keyStr = "icklsdufidsakdfa"; //十六位十六进制数作为密钥
  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. }