const crypto = require('crypto');
const net = require('net');
// Generate the key pair
const { publicKey, privateKey } = crypto.generateKeyPairSync('rsa', {
modulusLength: 4096,
publicKeyEncoding: {
type: 'pkcs1',
format: 'pem'
},
privateKeyEncoding: {
type: 'pkcs1',
format: 'pem',
cipher: 'aes-256-cbc',
passphrase: 'your-passphrase'
}
});
// Create a server
const server = net.createServer((socket) => {
console.log('New client connected');
// Encrypt the data using the public key
const encrypt = crypto.publicEncrypt(publicKey, Buffer.from('Hello, World!'));
// Send the encrypted data
socket.write(encrypt);
// Decrypt the data using the private key
const decrypt = crypto.privateDecrypt(
{ key: privateKey, passphrase: 'your-passphrase' },
encrypt
);
// Log the decrypted message
console.log(decrypt.toString());
});
server.listen(3000, () => {
console.log('Server started on port 3000');
});