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:.wwwlautturi.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.