Clue Mediator

Generate a random password using JavaScript

📅December 6, 2020

Today we’ll show you how to generate a random password using JavaScript. Here, we’ll show you the most popular two methods to generate a random strong password using JavaScript.

Ways to generate a random password

  1. Generate a password from given string
  2. Use Math.random() method

1. Generate a password from given string

In this approach, we will create a custom function to get a random password where we have to pass the length of the password as a parameter. We’ll consider the string, number and symbol to generate a random password.

function generatePassword(len) {
  var length = len ? len : 10;
  var string = "abcdefghijklmnopqrstuvwxyz"; // to upper
  var numeric = "0123456789";
  var punctuation = "!@#$_";
  var password = "";
  var character = "";
  while (password.length < length) {
    entity1 = Math.ceil(string.length * Math.random() * Math.random());
    entity2 = Math.ceil(numeric.length * Math.random() * Math.random());
    entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());
    hold = string.charAt(entity1);
    hold = password.length % 2 == 0 ? hold.toUpperCase() : hold;
    character += hold;
    character += numeric.charAt(entity2);
    character += punctuation.charAt(entity3);
    password = character;
  }
  password = password
    .split("")
    .sort(function() {
      return 0.5 - Math.random();
    })
    .join("");
  return password.substr(0, len);
}

generatePassword(8); // Output: C6d#F@33
generatePassword(12); // Output: o4h@#1#4D@3D

2. Use Math.random() method

In the next approach, we’ll use the `Math.random()` method to cast a random number (in the range 0..1) to a base36 string (lowercase a-z plus 0-9) and remove the leading zero and decimal point using `slice()` method. Here, we have used the `toUpperCase()` method to get the uppercase char in the password.

function generatePassword() {
  return (
    Math.random().toString(36).slice(2) +
    Math.random().toString(36).toUpperCase().slice(2)
  );
}

generatePassword(); // Output: ggpq0gv9iviVI1YEF4BGZ
generatePassword(); // Output: bmsv4p3v4m1CFSR0V4CXH

That’s it for today.
Thank you for reading. Happy Coding..!!