2025-04-14 10:57:27 +08:00

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