브라우징 자동화에만 집중
This commit is contained in:
29
utils/crypto.js
Normal file
29
utils/crypto.js
Normal file
@@ -0,0 +1,29 @@
|
||||
const crypto = require('crypto');
|
||||
require('dotenv').config();
|
||||
|
||||
const ALGORITHM = 'aes-256-cbc';
|
||||
const KEY = crypto.createHash('sha256').update(process.env.CRYPT_KEY).digest();
|
||||
const IV = Buffer.alloc(16, 0); // Python의 chr(0) * 16 과 동일
|
||||
|
||||
class AESCipher {
|
||||
static encrypt(text) {
|
||||
const cipher = crypto.createCipheriv(ALGORITHM, KEY, IV);
|
||||
let encrypted = cipher.update(text, 'utf8', 'base64');
|
||||
encrypted += cipher.final('base64');
|
||||
return encrypted;
|
||||
}
|
||||
|
||||
static decrypt(encryptedText) {
|
||||
try {
|
||||
const decipher = crypto.createDecipheriv(ALGORITHM, KEY, IV);
|
||||
let decrypted = decipher.update(encryptedText, 'base64', 'utf8');
|
||||
decrypted += decipher.final('utf8');
|
||||
return decrypted;
|
||||
} catch (error) {
|
||||
console.error("복호화 실패:", error.message);
|
||||
return null; // 또는 오류 처리
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = AESCipher;
|
||||
44
utils/db.js
Normal file
44
utils/db.js
Normal file
@@ -0,0 +1,44 @@
|
||||
const sqlite3 = require('sqlite3').verbose();
|
||||
const path = require('path');
|
||||
|
||||
const dbPath = path.resolve(__dirname, '../data', 'database.sqlite');
|
||||
const db = new sqlite3.Database(dbPath);
|
||||
|
||||
/**
|
||||
* Promise 기반으로 DB 쿼리를 실행합니다.
|
||||
* @param {string} sql - 실행할 SQL 쿼리
|
||||
* @param {Array} params - SQL에 바인딩할 파라미터 배열
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
function query(sql, params = []) {
|
||||
return new Promise((resolve, reject) => {
|
||||
db.all(sql, params, (err, rows) => {
|
||||
if (err) {
|
||||
console.error('DB 쿼리 오류:', sql, params);
|
||||
return reject(err);
|
||||
}
|
||||
resolve(rows);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 단일 INSERT, UPDATE, DELETE 쿼리를 실행합니다.
|
||||
* @param {string} sql
|
||||
* @param {Array} params
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
function run(sql, params = []) {
|
||||
return new Promise((resolve, reject) => {
|
||||
db.run(sql, params, function (err) {
|
||||
if (err) {
|
||||
console.error('DB 실행 오류:', sql, params);
|
||||
return reject(err);
|
||||
}
|
||||
// this.lastID, this.changes를 resolve 할 수도 있음
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = { query, run };
|
||||
Reference in New Issue
Block a user