引用方法
const aesUtil = require('../utils/util.js')
let encrypt = aesUtil.encrypt('要加密的东西','秘钥')
let decrypt = aesUtil.decrypt('要解密的东西','秘钥')
util.js 文件
const CryptoJS = require("./AES.js").CryptoJS; //引用AES源码js
//加密方法
const encrypt = ({
word, keyStr }) => {
keyStr = keyStr ? keyStr : "12345678900";
let key = CryptoJS.enc.Utf8.parse(keyStr);
let srcs = CryptoJS.enc.Utf8.parse(word);
let encrypted = CryptoJS.AES.encrypt(srcs, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7,
});
return encrypted.toString();
};
//解密方法
const decrypt = ({
word, keyStr }) => {
keyStr = keyStr ? keyStr : "1234567890";
var key = CryptoJS.enc.Utf8.parse(keyStr);
var decrypt = CryptoJS.AES.decrypt(word, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7,
});
return CryptoJS.enc.Utf8.stringify(decrypt).toString();
};
module.exports = {
encrypt,
decrypt,
};
AES.JS
var t = t || function (t, e) {
var r = {
}, i = r.lib = {
}, n = function () {
}, o = i.Base = {
extend: function (t) {
n.prototype = this;
var e = new n();
return t && e.mixIn(t), e.hasOwnProperty("init") || (e.init = function () {
e.$super.init.apply(this, arguments);
}), e.init.prototype = e, e.$super = this, e;
},
create: function () {
var t = this.extend();
return t.init.apply(t, arguments), t;
},
init: function () {
},
mixIn: function (t) {
for (var e in t) t.hasOwnProperty(e) && (this[e] = t[e]);
t.hasOwnProperty("toString") && (this.toString = t.toString);
},
clone: function () {
return this.init.prototype.extend(this);
}
}, s = i.WordArray = o.extend({
init: function (t, e) {
t = this.words = t || [], this.sigBytes = void 0 != e ? e : 4 * t.length;
},
toString: function (t) {
return (t || a).stringify(this);
},
concat: function (t) {
var e = this.words, r = t.words, i = this.sigBytes;
if (t = t.sigBytes, this.clamp(), i % 4) for (var n = 0; n < t; n++) e[i + n >>> 2] |= (r[n >>> 2] >>> 24 - n % 4 * 8 & 255) << 24 - (i + n) % 4 * 8; else if (65535 < r.length) for (n = 0; n < t; n += 4) e[i + n >>> 2] = r[n >>> 2]; else e.push.apply(e, r);
return this.sigBytes += t, this;
},
clamp: function () {
var e = this.words, r = this.sigBytes;
e[r >>> 2] &= 4294967295 << 32 - r % 4 * 8, e.length = t.ceil(r / 4);
},
clone: function () {
var t = o.clone.call(this);
return t.words = this.words.slice(0), t;
},
random: function (e) {
for (var r = [], i = 0; i < e; i += 4) r.push(4294967296 * t.random() | 0);
return new s.init(r, e);
}
}), c = r.enc = {
}, a = c.Hex = {
stringify: function (t) {
var e = t.words;
t = t.sigBytes;
for (var r = [], i = 0; i < t; i++) {
var n = e[i >>> 2] >>> 24 - i % 4 * 8 & 255;
r.push((n >>> 4).toString(16)), r.push((15 & n).toString(16));
}
return r.join("");
},
parse: function (t) {
for (var e = t.length, r = [], i = 0; i < e; i += 2) r[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - i % 8 * 4;
return new s.init(r, e / 2);
}
}, f = c.Latin1 = {
stringify: function (t) {
var e = t.words;
t = t.sigBytes;
for (var r = [], i = 0; i < t; i++) r.push(String.fromCharCode(e[i >>> 2] >>> 24 - i % 4 * 8 & 255));
return r.join("");
},
parse: function (t) {
for (var e = t.length, r = [], i = 0; i < e; i++) r[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8;
return new s.init(r, e);
}
}, h = c.Utf8 = {
stringify: function (t) {
try {
return decodeURIComponent(escape(f.stringify(t)));
} catch (t) {
throw Error("Malformed UTF-8 data");
}
},
parse: function (t) {
return f.parse(unescape(encodeURIComponent(t)));
}
}, u = i.BufferedBlockAlgorithm = o.extend({
reset: function () {
this._data = new s.init(), this._nDataBytes = 0;
},
_append: function (t) {
"string" == typeof t && (t = h.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes;
},
_process: function (e) {
var r = this._data, i = r.words, n = r.sigBytes, o = this.blockSize, c = n / (4 * o);
if (e = (c = e ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0)) * o, n = t.min(4 * e, n),
e) {
for (var a = 0; a < e; a += o) this._doProcessBlock(i, a);
a = i.splice(0, e), r.sigBytes -= n;
}
return new s.init(a, n);
},
clone: function () {
var t = o.clone.call(this);
return t._data = this._data.clone(), t;
},
_minBufferSize: 0
});
i.Hasher = u.extend({
cfg: o.extend(),
init: function (t) {
this.cfg = this.cfg.extend(t), this.reset();
},
reset: function () {
u.reset.call(this), this._doReset();
},
update: function (t) {
return this._append(t), this._process(), this;
},
finalize: function (t) {
return t && this._append