39 lines
1.4 KiB
JavaScript
39 lines
1.4 KiB
JavaScript
|
|
"use strict";
|
||
|
|
const common_vendor = require("../common/vendor.js");
|
||
|
|
const AES128ECBEncrypt = (inputText, key) => {
|
||
|
|
var inputArr = [];
|
||
|
|
while (inputText.length < 32) {
|
||
|
|
inputText = inputText + "0";
|
||
|
|
}
|
||
|
|
for (var i = 0; i < inputText.length / 2; i++) {
|
||
|
|
inputArr.push(parseInt(inputText.substring(i * 2, i * 2 + 2), 16));
|
||
|
|
}
|
||
|
|
var inputParse = int8arrayParse(inputArr);
|
||
|
|
var keyParse = common_vendor.CryptoJS.enc.Utf8.parse(key);
|
||
|
|
var n = (inputParse.toString(common_vendor.CryptoJS.enc.Base64), common_vendor.CryptoJS.AES.encrypt(inputParse, keyParse, {
|
||
|
|
iv: [],
|
||
|
|
mode: common_vendor.CryptoJS.mode.ECB,
|
||
|
|
padding: common_vendor.CryptoJS.pad.NoPadding
|
||
|
|
}));
|
||
|
|
var w = int8arrayStringify(n.ciphertext);
|
||
|
|
var encryptStr = bufTohex(w.buffer);
|
||
|
|
return encryptStr;
|
||
|
|
};
|
||
|
|
const bufTohex = (buffer) => {
|
||
|
|
return Array.prototype.map.call(new Uint8Array(buffer), (x) => ("00" + x.toString(16)).slice(-2)).join("");
|
||
|
|
};
|
||
|
|
const int8arrayParse = (e) => {
|
||
|
|
for (var r = e.length, i = [], n = 0; n < r; n++)
|
||
|
|
i[n >>> 2] |= (255 & e[n]) << 24 - n % 4 * 8;
|
||
|
|
return common_vendor.CryptoJS.lib.WordArray.create(i, r);
|
||
|
|
};
|
||
|
|
const int8arrayStringify = (t) => {
|
||
|
|
for (var e = t.words, r = t.sigBytes, i = new Int8Array(r), n = 0; n < r; n++) {
|
||
|
|
var o = e[n >>> 2] >> 24 - n % 4 * 8 & 255;
|
||
|
|
i[n] = o;
|
||
|
|
}
|
||
|
|
return i;
|
||
|
|
};
|
||
|
|
exports.AES128ECBEncrypt = AES128ECBEncrypt;
|
||
|
|
//# sourceMappingURL=../../.sourcemap/mp-weixin/utils/aes_util.js.map
|