Node Js Private Key And Public Key Encryption and Decryption

   
const crypto = require('crypto');

    // Generate RSA key pair for personal decryption
    const MyKey = crypto.generateKeyPairSync('rsa', {
        modulusLength: 2048,
        publicKeyEncoding: {
            type: 'spki',
            format: 'pem'
        },
        privateKeyEncoding: {
            type: 'pkcs8',
            format: 'pem'
        }
    });


    // Function to encrypt a message using user's public key
    function encryptMessage(message, publicKey) {
        let encryptMsg;
        try {
            encryptMsg = crypto.publicEncrypt(publicKey, Buffer.from(message)).toString('base64')
        } catch (error) {
            encryptMsg = false
        }
        return encryptMsg;
    }

    // Function to decrypt a message using personal private key
    function decryptMessage(encryptedMessage, privateKey) {
        let decryptMsg;
        try {
            decryptMsg = crypto.privateDecrypt(privateKey, Buffer.from(encryptedMessage, 'base64')).toString();
        } catch (error) {
            decryptMsg = false;
        }
        return decryptMsg;
    }

    // Example usage
    const originalMessage = 'My Private Message :- 123456790';

    // Encrypt message using user's public key
    const encryptedMessage = encryptMessage(originalMessage, MyKey.publicKey);
    if (encryptMessage) {
        console.log('Encrypted Message:', encryptedMessage);
    }
    else {
        console.log("encyrption failed");
    }

    // Decrypt message using personal private key
    const decryptedMessage = decryptMessage(encryptedMessage, MyKey.privateKey);
    if (decryptedMessage) {
        console.log('Decrypted Message:', decryptedMessage);
    }
    else {
        console.log("decryption failed");
    }

Comments

Popular posts from this blog

Express Production Setup - 4 | HELMET

Express Production Setup - 3 | CORS

Ensuring File Creation in the Current Directory when Converting Python (.py) Script to Executable (.exe).