java generate secure random password

java generate secure random password

To generate a secure random password in Java, you can use the SecureRandom class of the java.security package and a set of characters that includes upper and lower case letters, digits, and special characters.

Here's an example of how to generate a secure random password in Java:

import java.math.BigInteger;
import java.security.SecureRandom;

public class Main {
  public static void main(String[] args) {
    SecureRandom random = new SecureRandom();

    // Generate a random password as a hexadecimal string
    String password = String.format("%040x", new BigInteger(128, random));

    // Convert the hexadecimal string to a character array
    char[] passwordChars = password.toCharArray();

    // Replace some of the characters with upper case letters, digits, and special characters
    for (int i = 0; i < passwordChars.length; i++) {
      char c = passwordChars[i];
      if (c >= 'a' && c <= 'z') {
        // Replace a lower case letter with an upper case letter
        passwordChars[i] = (char) (c - 'a' + 'A');
      } else if (c >= '0' && c <= '9') {
        // Replace a digit with a special character
        passwordChars[i] = '!';
      } else if (c >= 'A' && c <= 'Z') {
        // Replace an upper case letter with a digit
        passwordChars[i] = (char) (c - 'A' + '0');
      }
    }

    // Convert the character array to a string
    password = new String(passwordChars);

    System.out.println(password); // prints a random password
  }
}
Source:‮.www‬lautturi.com

This code creates a SecureRandom object and uses it to generate a random BigInteger value. The BigInteger value is then formatted as a hexadecimal string using the String.format() method. The resulting string is a random password that consists of hexadecimal characters.

The code then converts the hexadecimal string to a character array and replaces some of the characters with upper case letters, digits, and special characters using a loop. Finally, the character array is converted back to a string to produce the final password.

Created Time:2017-11-03 22:21:07  Author:lautturi