java登陆注册和验证码实现,用代码
时间: 2024-02-03 18:13:25 浏览: 29
以下是一个简单的 Java 登录注册和验证码实现示例:
```java
import java.util.*;
public class LoginSystem {
private static Map<String, String> userDatabase = new HashMap<>();
private static Map<String, String> sessionDatabase = new HashMap<>();
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
boolean quit = false;
while (!quit) {
System.out.println("1. Register");
System.out.println("2. Login");
System.out.println("3. Quit");
System.out.print("Enter your choice: ");
int choice = scanner.nextInt();
scanner.nextLine(); // consume the newline character after the integer input
switch (choice) {
case 1:
register(scanner);
break;
case 2:
login(scanner);
break;
case 3:
quit = true;
break;
default:
System.out.println("Invalid choice, please try again.");
}
}
}
private static void register(Scanner scanner) {
System.out.print("Enter your username: ");
String username = scanner.nextLine();
if (userDatabase.containsKey(username)) {
System.out.println("Username already taken, please choose another one.");
return;
}
System.out.print("Enter your password: ");
String password = scanner.nextLine();
userDatabase.put(username, password);
System.out.println("Registration successful!");
}
private static void login(Scanner scanner) {
System.out.print("Enter your username: ");
String username = scanner.nextLine();
System.out.print("Enter your password: ");
String password = scanner.nextLine();
if (!userDatabase.containsKey(username) || !userDatabase.get(username).equals(password)) {
System.out.println("Invalid username or password.");
return;
}
String sessionId = generateSessionId();
sessionDatabase.put(sessionId, username);
System.out.println("Login successful, your session ID is: " + sessionId);
verifyUser(scanner, sessionId);
}
private static String generateSessionId() {
return UUID.randomUUID().toString();
}
private static void verifyUser(Scanner scanner, String sessionId) {
String verificationCode = generateVerificationCode();
System.out.println("Please enter the following verification code: " + verificationCode);
String inputCode = scanner.nextLine();
if (!inputCode.equals(verificationCode)) {
System.out.println("Verification failed, session terminated.");
sessionDatabase.remove(sessionId);
return;
}
System.out.println("Verification successful, welcome " + sessionDatabase.get(sessionId) + "!");
}
private static String generateVerificationCode() {
Random random = new Random();
int code = random.nextInt(9000) + 1000;
return String.valueOf(code);
}
}
```
上述代码实现了一个简单的登录注册系统,用户输入用户名和密码进行注册,用户输入用户名和密码进行登录。登录成功后,系统会生成一个随机的会话 ID,并要求用户输入一个验证码进行验证。验证码是一个 4 位数的随机数,用户输入正确的验证码后才能进入系统。如果用户输入的验证码不正确,系统会终止该会话。