generateTemporaryPassword static method

String generateTemporaryPassword(
  1. int length
)

Implementation

static String generateTemporaryPassword(int length) {
  const String lowercaseLetters = 'abcdefghijklmnopqrstuvwxyz';
  const String uppercaseLetters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  const String numbers = '0123456789';
  const String specialChars = '@#\$%^&*()-_=+';

  // Ensure the password length is at least 8 characters
  final int minLength = length < 8 ? 8 : length;

  // Create a list to hold the password characters
  final List<String> passwordChars = [];

  // Randomly select at least one character from each character set
  final Random random = Random();
  passwordChars.add(lowercaseLetters[random.nextInt(lowercaseLetters.length)]);
  passwordChars.add(uppercaseLetters[random.nextInt(uppercaseLetters.length)]);
  passwordChars.add(numbers[random.nextInt(numbers.length)]);
  passwordChars.add(specialChars[random.nextInt(specialChars.length)]);

  // Fill the rest of the password length with random characters from all sets
  const String allChars = lowercaseLetters + uppercaseLetters + numbers + specialChars;
  while (passwordChars.length < minLength) {
    passwordChars.add(allChars[random.nextInt(allChars.length)]);
  }

  // Shuffle the characters to ensure randomness
  passwordChars.shuffle();

  // Join the characters to form the password string and return
  return passwordChars.join();
}