public class PasswordGenerator { private static final String CHAR_LOWER = "abcdefghijklmnopqrstuvwxyz"; private static final String CHAR_UPPER = CHAR_LOWER.toUpperCase(); private static final String NUMBER = "0123456789"; private static final String OTHER_CHAR = "!@#$%&*()_+-=[]?"; private static final String PASSWORD_ALLOW_BASE = CHAR_LOWER + CHAR_UPPER + NUMBER + OTHER_CHAR; private static final Random random = new SecureRandom();
public static void main(String[] args) { int length = 10; String password = generatePassword(length); System.out.println("Надежный пароль: " + password); }
public static String generatePassword(int length) { if (length < 6) { throw new IllegalArgumentException("Пароль должен содержать не менее 6 символов"); }
StringBuilder passwordBuilder = new StringBuilder(length);
// выбрать хотя бы один символ из каждого набора passwordBuilder.append(randomChar(CHAR_LOWER)); passwordBuilder.append(randomChar(CHAR_UPPER)); passwordBuilder.append(randomChar(NUMBER)); passwordBuilder.append(randomChar(OTHER_CHAR));
// генерируем случайные символы из допустимого набора for (int i = 4; i < length; i++) { passwordBuilder.append(randomChar(PASSWORD_ALLOW_BASE)); }
Здесь после запуска программы в консолей постоянно выходит ошибка:
Генератор паролей.java:4 : ошибка: класс PasswordGenerator является общедоступным, должен быть объявлен в файле с именем PasswordGenerator.java открытый класс PasswordGenerator { ^ 1 ошибка
уже полдня пытаюсь разобраться в ней исправьте пожалуста код и отправьте исправленый код мне
Дополнен 1 год назад
она работает через раз вот иногда с ошибкой иногда без
import java.security .SecureRandom;
import java.util.Random;
public class PasswordGenerator {
private static final String CHAR_LOWER = "abcdefghijklmnopqrstuvwxyz";
private static final String CHAR_UPPER = CHAR_LOWER.toUpperCase();
private static final String NUMBER = "0123456789";
private static final String OTHER_CHAR = "!@#$%&*()_+-=[]?";
private static final String PASSWORD_ALLOW_BASE = CHAR_LOWER + CHAR_UPPER + NUMBER + OTHER_CHAR;
private static final Random random = new SecureRandom();
public static void main(String[] args) {
int length = 10;
String password = generatePassword(length);
System.out.println("Надежный пароль: " + password);
}
public static String generatePassword(int length) {
if (length < 6) {
throw new IllegalArgumentException("Пароль должен содержать не менее 6 символов");
}
StringBuilder passwordBuilder = new StringBuilder(length);
// выбрать хотя бы один символ из каждого набора
passwordBuilder.append(randomChar(CHAR_LOWER));
passwordBuilder.append(randomChar(CHAR_UPPER));
passwordBuilder.append(randomChar(NUMBER));
passwordBuilder.append(randomChar(OTHER_CHAR));
// генерируем случайные символы из допустимого набора
for (int i = 4; i < length; i++) {
passwordBuilder.append(randomChar(PASSWORD_ALLOW_BASE));
}
return passwordBuilder.toString();
}
private static char randomChar(String characterSet) {
int randomIndex = random.nextInt(characterSet.length());
return characterSet.charAt(randomIndex);
}
}
Здесь после запуска программы в консолей постоянно выходит ошибка:
Генератор паролей.java:4 : ошибка: класс PasswordGenerator является общедоступным, должен быть объявлен в файле с именем PasswordGenerator.java
открытый класс PasswordGenerator {
^
1 ошибка
уже полдня пытаюсь разобраться в ней исправьте пожалуста код и отправьте исправленый код мне