SCRYPT demo in Node.JS v15

SCRYPT is yet another password-based key derivation function that allows you to tweak its arguments in order to discourage brute-force attacks. Basically you can adjust the options to make it slower, and therefore brute-force attacks will need more time to be performed. Here is an example of how to use SCRYPT to generate keys and IVs to use with all …

Password Based Key Derivation Function 2 (PBKDF2) demo in Node.JS v15

A quick demo on how to use Password Based Key Derivation Function 2 (PBKDF2) to generate keys and IVs to use with all different ciphers available in Node.JS v15.x. const crypto = require(‘crypto’); const PASSWORD = “My_Secret_Password”; // Could be the password/key used to encrypt a message const ITERATIONS = 10; const DIGEST = “sha256”; crypto.getCiphers().forEach(cipher => { let cipherInfo …

Node.JS Ciphers Info in version 15.x

After the deprecation of methods createCipher(…) and createDecipher(…) due to the introduction of createCipheriv(…) and createDecipheriv(…) a lot of us had issues when specifying the keys and IVs because sometimes the key would be the incorrect size and same for the IVs. I developed a kind of brute force tester to determine the correct values and keep them in a …

How to install Visual Studio Code in Raspbian 10 (Buster)

1- Get the .deb file from https://code.visualstudio.com/docs/?dv=linuxarmhf_deb 2- Double click on it and hit Install when asked if you want to install the file 3- Type in your password when prompted for it 4- Done, you can find the program under Raspberry Start Menu > Programming > Visual Studio Code

How to create a Node.JS application with Express Generator

I am assuming that you already have Node.JS installed. If you don’t, worry not! you can get your own copy today from the Node.JS download section! Using ExpressJS is very quick and easy. It generates all the file structure needed for a web application. You can select¬† any of the different views they have available, in this case I am …

How to Encrypt / Decrypt with AES (CCM & GCM) in Node.JS

First of all we have to understand what is CCM mode and GCM mode. Roughly: CCM CCM mode (Counter with CBC-MAC) is a mode of operation for cryptographic block ciphers. It is an authenticated encryption algorithm designed to provide both authentication and confidentiality. CCM mode is only defined for block ciphers with a block length of 128 bits. GCM Galois/Counter …

How to delete a collection of IDs in POSTMAN

Today I had to delete several objects that I created when testing an API. It was very easy to click the Send button and create a bunch of stuff but now I have to clean the DB. I am using Postman as testing tool and I chose to execute the following code in the Pre-request Script of my test. The …

How to generate random bytes in Node.JS

Easy! I discovered this recently and it is interesting to me. Here is a quick example: const crypto = require(‘crypto’); console.log(crypto.randomBytes(1).toString(“hex”)); console.log(crypto.randomBytes(2).toString(“hex”)); console.log(crypto.randomBytes(4).toString(“hex”)); console.log(crypto.randomBytes(8).toString(“hex”)); console.log(crypto.randomBytes(16).toString(“hex”)); console.log(crypto.randomBytes(32).toString(“hex”)); console.log(crypto.randomBytes(64).toString(“hex”)); When you run this code you might see something similar to this: E:\NodeJS>node randomCrypto.js d8 dccd 0709fee2 67d6d7c51cc59f0d af19069e601e47a9141d27d7d828a9d0 f83b7547452099462061734791da57443cc60828de7dcb8f7494eedceb3c889c e2e4a1faaf4190898aaf4fa786e20fe076237854ae4628127cb2eda4bafd3000b42788e347ade94d0c98614a40586b71ded3044879f791adedd6c0d4bb22e9ac The argument passed to the function is the length in bytes, when …

How to Encode / Decode to / from base64 in Node.JS

Today I ran into this basic problem. A quick search on google gave me the answer, I tested it, it worked, and the rest is history. Here is the code. let plainText = “Hello World!”; console.log(“Plaint text = ” + plainText); // Encoding to base64 let base64 = new Buffer(plainText).toString(‘base64’); console.log(“Encoded to base64 = ” + base64); // Decoding from …