Elliptic Curve Diffie-Hellman and AES Example in Node.JS

Recently I learned how to generate shared secrets using ECDH in Node.JS, but I still had to know how to use this shared secret. Here is one application for it. Use the ECDH to generate a shared secret and then use that shared secret to cipher/decipher messages between both parties, in this case Joe and Zoe. Here is the code: …

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 …

How to list supported Ciphers, Hashes, and Curves for Crypto in Node.JS

Not a complicated task. Here is the code: var crypto = require(‘crypto’); console.log(); console.log(‘[ SUPPORTED CIPHERS ]\n’) console.log(crypto.getCiphers()); console.log(); console.log(‘[ SUPPORTED HASHES ]\n’) console.log(crypto.getHashes()); console.log(); console.log(‘[ SUPPORTED CURVES ]\n’) console.log(crypto.getCurves()); Your output should be similar to this: E:\Codes\NodeJS\Cryptography>node listAllAlgorithms.js [ SUPPORTED CIPHERS ] [ ‘CAST-cbc’, ‘aes-128-cbc’, ‘aes-128-cbc-hmac-sha1’, ‘aes-128-cbc-hmac-sha256’, ‘aes-128-ccm’, ‘aes-128-cfb’, ‘aes-128-cfb1’, ‘aes-128-cfb8’, ‘aes-128-ctr’, ‘aes-128-ecb’, ‘aes-128-gcm’, ‘aes-128-ofb’, ‘aes-128-xts’, ‘aes-192-cbc’, ‘aes-192-ccm’, ‘aes-192-cfb’, …

How to Encrypt / Decrypt with AES in Node.JS

Easy as pie! var crypto = require(‘crypto’); var AES128 = “aes128”; var AES192 = “aes192”; var AES256 = “aes256”; var password = ‘Austin’; var plainText = ‘Texas to the bone!’; // ———————————————— var cipher = crypto.createCipher(AES128, password); var decipher = crypto.createDecipher(AES128, password); console.log(‘AES-128:’); // Encrypting with AES128 var encText = cipher.update(plainText, ‘utf8’, ‘hex’); encText += cipher.final(‘hex’); console.log(encText); // Decrypting with …