| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- var CryptoJS = require("crypto-js");
- console.log(CryptoJS.HmacSHA1("Message", "Key"));
- let crypto = {}
- //前后端定义的密钥,AES使用16位
- const CRYPTOJS_KEY = "uAY9ugkHQpvozZeA";
- //签名key
- crypto.SIGN_KEY="uRJW6a2Qofpa3pGIdILc"
- // 加密
- crypto.encrypt = (plaintText) => {
- var plaintText = plaintText;
- var options = {
- mode: CryptoJS.mode.ECB,
- padding: CryptoJS.pad.Pkcs7
- };
- var key = CryptoJS.enc.Utf8.parse(CRYPTOJS_KEY);
- var encryptedData = CryptoJS.AES.encrypt(plaintText, key, options);
- var encryptedBase64Str = encryptedData.toString().replace(/\//g, "_");
- encryptedBase64Str = encryptedBase64Str.replace(/\+/g, "-");
- return encryptedBase64Str;
- }
- //解密
- crypto.decrypt = (encryptedBase64Str) => {
- var vals = encryptedBase64Str.replace(/\-/g, '+').replace(/_/g, '/');
- var options = {
- mode: CryptoJS.mode.ECB,
- padding: CryptoJS.pad.Pkcs7
- };
- var key = CryptoJS.enc.Utf8.parse(CRYPTOJS_KEY);
- var decryptedData = CryptoJS.AES.decrypt(vals, key, options);
- var decryptedStr = CryptoJS.enc.Utf8.stringify(decryptedData);
- return decryptedStr
- }
- //通过key排序后得到value
- crypto.objSort=(arys)=> {
- //先用Object内置类的keys方法获取要排序对象的属性名,再利用Array原型上的sort方法对获取的属性名进行排序,newkey是一个数组
- var newkey = Object.keys(arys).sort();
- //console.log('newkey='+newkey);
- var newStr = ""; //创建一个新的对象,用于存放排好序的键值对
- for(var i = 0; i < newkey.length; i++) {
- //遍历newkey数组
- newStr=newStr + arys[newkey[i]]
- //向新创建的对象中按照排好的顺序依次增加键值对
- }
- return newStr; //返回排好序的新对象
- }
- export default crypto
|