Подсказка: я пишу программу для входа в систему, которая запрашивает у пользователя имя пользователя и пароль. Вся информация пользователя хранится в файле password.txt, а пароли хранятся в виде хеш-кода. Если пользователь вводит неверное имя пользователя или пароль, который не имеет такой же хеш-код, как хеш-код в записи, программа должна вывести «Unsuccessful login». Если пользователь вводит правильное имя пользователя, а пароль имеет тот же хеш, что и хеш в записи, то программа должна вывести «Войти успешно.»
Файл password.txt настроен так:
Real name:username:password_hash
Вопрос: Как мне найти в .txt строку и хэш-код?
Это код, который у меня есть сейчас:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Scanner sf = new Scanner("passwords.txt");
String Username;
String Password;
System.out.println("Login ");
System.out.println("Please Enter Username: ");
Username = sc.next();
System.out.println("Please Enter Password: ");
Password = sc.next();
String login = Username + ":" + Password.hashCode();
System.out.println(login);
while(sf.hasNextLine()){
if((login.equals(sf.nextLine().trim()))){
System.out.println("Login Successful!");
break;
}
if(!(login.equals(sf.nextLine().trim()))){
System.out.println("Login Unsuccessful!");
}
}
Я пытаюсь найти код для строки, которая выглядит как имя пользователя: hashcodePassword
Проблемы: код не печатает оператор if и выдает эту ошибку при запуске программы
Ошибка:
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Scanner.java:1540)
at LoginApplication.main(LoginApplication.java:29)