const { generateKeyPairSync, privateEncrypt, publicDecrypt } = require('crypto');

// تولید کلیدها
const { publicKey, privateKey } = generateKeyPairSync('rsa', {
  modulusLength: 2048,
});

// رمزنگاری با کلید خصوصی
function encryptWithPrivateKey(message) {
  return privateEncrypt(privateKey, Buffer.from(message));
}

// رمزگشایی با کلید عمومی
function decryptWithPublicKey(encryptedMessage) {
  return publicDecrypt(publicKey, encryptedMessage).toString();
}

const message = "این پیام با RSA رمزنگاری شده است.";
const encrypted = encryptWithPrivateKey(message);
console.log("رمز شده:", encrypted.toString('hex'));

const decrypted = decryptWithPublicKey(encrypted);
console.log("رمزگشایی شده:", decrypted);