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

加密解密

parent daa42889
Pipeline #21140 passed with stage
in 16 seconds
...@@ -63,6 +63,12 @@ class TaskController extends Controller { ...@@ -63,6 +63,12 @@ class TaskController extends Controller {
const { ctx, service, config } = this; const { ctx, service, config } = this;
ctx.validate(this.submitRule); ctx.validate(this.submitRule);
const { taskId } = ctx.params; 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({ await service.cache.set({
key: String(taskId), key: String(taskId),
value: { status: 'login', note: { message: 'login' } }, value: { status: 'login', note: { message: 'login' } },
......
...@@ -13,7 +13,7 @@ function process(data) { ...@@ -13,7 +13,7 @@ function process(data) {
return sign_str; return sign_str;
} }
module.exports.getUuid = function() { module.exports.getUuid = function () {
return uuid(); return uuid();
}; };
...@@ -23,7 +23,7 @@ module.exports.getUuid = function() { ...@@ -23,7 +23,7 @@ module.exports.getUuid = function() {
* @param {Object} content: 需要发送的预警信息模板 * @param {Object} content: 需要发送的预警信息模板
* @return {Boolean} 信息发送状态 * @return {Boolean} 信息发送状态
*/ */
module.exports.sendMsg = async function(content) { module.exports.sendMsg = async function (content) {
if (!content) return false; if (!content) return false;
const { app } = this; const { app } = this;
const { baseURL, settingid, appSecret } = app.config.JBnotifyCenter; const { baseURL, settingid, appSecret } = app.config.JBnotifyCenter;
...@@ -50,3 +50,18 @@ module.exports.sendMsg = async function(content) { ...@@ -50,3 +50,18 @@ module.exports.sendMsg = async function(content) {
}); });
return result; 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