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
Post a Comment