const crypto = require('crypto'); require('dotenv').config(); const algorithm = 'aes-256-cbc'; const key = crypto.createHash('sha256').update(process.env.ENCRYPTION_SECRET).digest(); const ivLength = 16; function encrypt(text) { const iv = crypto.randomBytes(ivLength); const cipher = crypto.createCipheriv(algorithm, key, iv); const encrypted = Buffer.concat([cipher.update(text, 'utf8'), cipher.final()]); return `${iv.toString('hex')}:${encrypted.toString('hex')}`; } function decrypt(encryptedText) { const [ivHex, encryptedHex] = encryptedText.split(':'); const iv = Buffer.from(ivHex, 'hex'); const encrypted = Buffer.from(encryptedHex, 'hex'); const decipher = crypto.createDecipheriv(algorithm, key, iv); const decrypted = Buffer.concat([decipher.update(encrypted), decipher.final()]); return decrypted.toString('utf8'); } module.exports = { encrypt, decrypt };