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 you convert it to hex, you should have a string with a length of 2 times the number of bytes indicated.

Sources

  • https://nodejs.org/api/crypto.html#crypto_crypto_randombytes_size_callback

Leave a Comment

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