|
|
@@ -0,0 +1,35 @@
|
|
|
+var CryptoJS = require("crypto-js");
|
|
|
+console.log(CryptoJS.HmacSHA1("Message", "Key"));
|
|
|
+
|
|
|
+let crypto = {}
|
|
|
+
|
|
|
+//前后端定义的密钥,AES使用16位
|
|
|
+const CRYPTOJS_KEY = "uAY9ugkHQpvozZeA";
|
|
|
+// 加密
|
|
|
+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
|
|
|
+}
|
|
|
+
|
|
|
+export default crypto
|