crypto.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. var CryptoJS = require("crypto-js");
  2. console.log(CryptoJS.HmacSHA1("Message", "Key"));
  3. let crypto = {}
  4. //前后端定义的密钥,AES使用16位
  5. const CRYPTOJS_KEY = "uAY9ugkHQpvozZeA";
  6. //签名key
  7. crypto.SIGN_KEY="uRJW6a2Qofpa3pGIdILc"
  8. // 加密
  9. crypto.encrypt = (plaintText) => {
  10. var plaintText = plaintText;
  11. var options = {
  12. mode: CryptoJS.mode.ECB,
  13. padding: CryptoJS.pad.Pkcs7
  14. };
  15. var key = CryptoJS.enc.Utf8.parse(CRYPTOJS_KEY);
  16. var encryptedData = CryptoJS.AES.encrypt(plaintText, key, options);
  17. var encryptedBase64Str = encryptedData.toString().replace(/\//g, "_");
  18. encryptedBase64Str = encryptedBase64Str.replace(/\+/g, "-");
  19. return encryptedBase64Str;
  20. }
  21. //解密
  22. crypto.decrypt = (encryptedBase64Str) => {
  23. var vals = encryptedBase64Str.replace(/\-/g, '+').replace(/_/g, '/');
  24. var options = {
  25. mode: CryptoJS.mode.ECB,
  26. padding: CryptoJS.pad.Pkcs7
  27. };
  28. var key = CryptoJS.enc.Utf8.parse(CRYPTOJS_KEY);
  29. var decryptedData = CryptoJS.AES.decrypt(vals, key, options);
  30. var decryptedStr = CryptoJS.enc.Utf8.stringify(decryptedData);
  31. return decryptedStr
  32. }
  33. //通过key排序后得到value
  34. crypto.objSort=(arys)=> {
  35. //先用Object内置类的keys方法获取要排序对象的属性名,再利用Array原型上的sort方法对获取的属性名进行排序,newkey是一个数组
  36. var newkey = Object.keys(arys).sort();  
  37. //console.log('newkey='+newkey);
  38. var newStr = ""; //创建一个新的对象,用于存放排好序的键值对
  39. for(var i = 0; i < newkey.length; i++) {
  40. //遍历newkey数组
  41. newStr=newStr + arys[newkey[i]]
  42. //向新创建的对象中按照排好的顺序依次增加键值对
  43. }
  44. return newStr; //返回排好序的新对象
  45. }
  46. export default crypto