Open In App

How to Generate a Random Password using JavaScript ?

Last Updated : 13 Dec, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

This article will show you how to generate a random password that may consist of alphabets, numbers, and special characters. This can be achieved in various ways.

These are the following ways:

Using .charAt() method

  • Make a string consisting of Alphabets (lowercase and uppercase), Numbers, and Special Characters.
  • We will use Math.random() and Math.floor() methods to generate a number between 0 and l-1 (where l is the length of the string).
  • To get the character of the string of a particular index we can use .charAt() method.
  • This will keep concatenating the random character from the string until the password of the desired length is obtained.

Example: This example implements the above approach. 

Javascript




/* Function to generate combination of password */
function generatePass() {
    let pass = '';
    let str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' +
        'abcdefghijklmnopqrstuvwxyz0123456789@#$';
 
    for (let i = 1; i <= 8; i++) {
        let char = Math.floor(Math.random()
            * str.length + 1);
 
        pass += str.charAt(char)
    }
 
    return pass;
}
 
console.log(generatePass());


Output

UJmkWOZc

Using .toString() method

  • In this approach, we will use Math.random() method to generate a number between 0 and 1 and then convert it to base36(which will consist of 0-9 and a-z in lowercase letters).
  • using .toString() method. To remove the leading zero and decimal point slice() method will be used and Math.random().toString(36).slice(2) to generate the password.
  • For uppercase letters use the same method as the .uppercase() method in concatenation with the previous method.

Example: This example implements the above approach. 

Javascript




function randomPassword() {
    console.log(
        Math.random().toString(36).slice(2) +
        Math.random().toString(36)
        .toUpperCase().slice(2));
}
 
randomPassword();


Output

oq899h92jtfK1IGT3NOIJ


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads