const crypto = require('crypto');

// کلید و وکتور مقداردهی اولیه (IV)
const key = crypto.randomBytes(32);
const iv = crypto.randomBytes(16);

// رمزنگاری
function encrypt(text) {
  const cipher = crypto.createCipheriv('aes-256-cbc', key, iv);
  let encrypted = cipher.update(text, 'utf8', 'hex');
  encrypted += cipher.final('hex');
  return encrypted;
}

// رمزگشایی
function decrypt(encryptedText) {
  const decipher = crypto.createDecipheriv('aes-256-cbc', key, iv);
  let decrypted = decipher.update(encryptedText, 'hex', 'utf8');
  decrypted += decipher.final('utf8');
  return decrypted;
}

const message = "این یک پیام محرمانه است.";
const encryptedMessage = encrypt(message);
console.log("رمز شده:", encryptedMessage);

const decryptedMessage = decrypt(encryptedMessage);
console.log("رمزگشایی شده:", decryptedMessage);