Commit 9efa73a9 authored by 姜登's avatar 姜登

加密解密

parent daa42889
Pipeline #21140 passed with stage
in 16 seconds
......@@ -63,6 +63,12 @@ class TaskController extends Controller {
const { ctx, service, config } = this;
ctx.validate(this.submitRule);
const { taskId } = ctx.params;
let key = taskId + ctx.request.body.timestamp;
if (key.length < 16) {
while (key.length < 16) key += '0';
}
key = key.substring(0,16);
ctx.request.body = ctx.helper.aesDecrypt({ algorithm: 'aes-128-ecb', key, data: ctx.request.body });
await service.cache.set({
key: String(taskId),
value: { status: 'login', note: { message: 'login' } },
......
......@@ -13,7 +13,7 @@ function process(data) {
return sign_str;
}
module.exports.getUuid = function() {
module.exports.getUuid = function () {
return uuid();
};
......@@ -23,7 +23,7 @@ module.exports.getUuid = function() {
* @param {Object} content: 需要发送的预警信息模板
* @return {Boolean} 信息发送状态
*/
module.exports.sendMsg = async function(content) {
module.exports.sendMsg = async function (content) {
if (!content) return false;
const { app } = this;
const { baseURL, settingid, appSecret } = app.config.JBnotifyCenter;
......@@ -50,3 +50,18 @@ module.exports.sendMsg = async function(content) {
});
return result;
};
module.exports.aesDecrypt = function ({ algorithm, key, data, iv = '' }) {
const { ctx } = this;
try {
const decipher = crypto.createDecipheriv(algorithm, key, iv);
decipher.setAutoPadding(true);
const cipherChunks = [];
cipherChunks.push(decipher.update(data, 'base64', 'utf8'));
cipherChunks.push(decipher.final('utf8'));
return cipherChunks.join('');
} catch (err) {
ctx.logger.error('aesdecrupt_ERROR', err, JSON.stringify({ algorithm, key, data, iv }));
ctx.throw('参数解密有误');
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment