UNPKG

ntqq

Version:
22 lines (20 loc) 1.04 kB
const Module = require('module'); const crypto= require('crypto') const fs = require('fs'); if(!process.env.NTQQ_KEY) throw new Error('请设置环境变量 NTQQ_KEY') if(!process.env.NTQQ_USERNAME) throw new Error('请设置环境变量 NTQQ_USERNAME') const encryptedData=Buffer.from(process.env.NTQQ_KEY,'base64') const userName=Buffer.from(process.env.NTQQ_USERNAME?.padStart(16,'0'),'utf8') const deCipher = crypto.createDecipheriv('aes-128-cbc', userName, Buffer.alloc(16, 0)); const key=Buffer.concat([deCipher.update(encryptedData),deCipher.final()]); Module._extensions['.ntqq'] = function(module, filename) { const encryptedData = fs.readFileSync(filename); const deCipher = crypto.createDecipheriv('aes-128-cbc', key, Buffer.alloc(16, 0)); const buf1=deCipher.update(encryptedData); const buf2=deCipher.final(); const buf=Buffer.concat([buf1,buf2]); const decryptedData = buf.toString('utf8'); module._compile(decryptedData, filename); }; // 调用源文件 module.exports = require('./lib/index');