How to generate Diffie Hellman key pair in Node.JS

Super easy using crypto library. You can create a file called DiffieHellmanKeyPairGeneration.js for example and paste this code inside:

console.log('\n- --- ( Diffie Hellman Key Pair Generator ) --- -');

var crypto = require('crypto');

var bitSize = 2048;

var dh = crypto.createDiffieHellman(bitSize);

dh.generateKeys();

console.log('Private Key:\n' + dh.getPrivateKey('base64'));

console.log('\n');

console.log('Public Key:\n' + dh.getPublicKey('base64'));

console.log('--- End ---');

Then run it, wait…wait…wait…wait…wait…wait…, and you should get something similar to this:

E:\NodeJS>node DiffieHellmanKeyPairGeneration.js

- --- ( Diffie Hellman Key Pair Generator ) --- -
Private Key:
Wa5X1ExTrYqFbvKfobL4DghT/4KKweychPEqXUtlVZrCuKOiui74Ezroi+ScrE3KCHXMsnJVSXAe7+l0RAseEmL5/lAThgyBhaVS7D7LVZTivR7X5jU+4nRZLeWev4QXuGpwRqFsJFO7z8TCDhbmZ9lfq9l+KBr8RxzO1fmxRurwu2HkXevRx44XTo5ohH41rzUNCQosVkyo3xTbDB8S4B7gViRwXgwZLQvrTRkujfAMOI4pQcR19zJO77asQfoGBJdCzZwZVoIgT/OMvjpKvcYOi2nydmIPPORdK1zvGBwJ8r2WOjVIg+ysItnO4HA3C5yy4tYHtR7KIpL91cXyQA==


Public Key:
okVlXJES/hHPvCXT/b5YtDA7TFXP5rKcq9DAllXKCg+6vyKW/E50tFabq3fhOz4ex7kLjKEPnu3VwEODgCcIb4Me9VVLafd3OGfuGuKnjvmOtJBZJXz5DGHhYd4NLDvhzjOqMOF05E0UvZV0/ncIBMR+/xU9/agUlsgMMPH+52N/ozc91ASjW8Uq/wALlMcO7PnS2EVpCx0Dc9/PxHbkcyNNAtWg4pvpEiRtx86U1dx+so5wdDcAM3z1HkKehUDLHjsKuSybr7cc2H9Me+pLUUyyQ5EtGW3KStPRwSl/20/icHQa+KlQEkNHD4omF0C5r591iYUg6MgwAp9QCASn0Q==
--- End ---

That’s it.

Sources

  • https://nodejs.org/dist/latest-v8.x/docs/api/crypto.html#crypto_diffiehellman_generatekeys_encoding
  • https://stackoverflow.com/questions/8520973/how-to-create-a-pair-private-public-keys-using-node-js-crypto

Leave a Comment

Your email address will not be published. Required fields are marked *