This commit is contained in:
250409
2026-04-30 12:05:32 +01:00
parent 474be8660a
commit ac026ae383

View File

@@ -37,19 +37,31 @@ public class GestorPalavraPasses {
switch (op) {
case 1:
System.out.println("Criar conta...");
System.out.print("Aplicação/Site: ");
String app = scanner.nextLine();
System.out.print("Nome/Email: ");
String user = scanner.nextLine();
System.out.print("Palavra-passe: ");
String pass = scanner.nextLine();
Account acc = new Account(app, user, pass);
FileManager.save(acc);
break;
case 2:
System.out.println("Listar contas...");
FileManager.readAll();
break;
case 3:
System.out.println("Procurar conta...");
System.out.print("Pesquisar: ");
String termo = scanner.nextLine();
FileManager.search(termo);
break;
case 4:
System.out.println("Apagar conta...");
System.out.print("Apagar (Nome/Email, Palavra-passe): ");
String apagar = scanner.nextLine();
FileManager.delete(apagar);
break;
case 5:
System.out.println("Gerar password...");
System.out.println("Palavra-passe gerada: " + PasswordGenerator.generate());
break;
case 0:
System.out.println("A sair...");
@@ -65,14 +77,140 @@ public class GestorPalavraPasses {
class Account {
String app;
String username;
String password;
public Account(String app, String username, String password) {
this.app = app;
this.username = username;
this.password = password;
}
}
class FileManager {
}
class PasswordGenerator {
public static void readAll() {
try {
java.io.BufferedReader reader = new java.io.BufferedReader(
new java.io.FileReader("data.txt")
);
String line;
while ((line = reader.readLine()) != null) {
String[] parts = line.split(";");
System.out.println("\nAplicação/Site: " + parts[0] +
" | Nome/Email: " + parts[1] +
" | Palavra-Passe: " + parts[2]);
}
reader.close();
} catch (Exception e) {
System.out.println("Erro ao ler ficheiro.");
}
}
public static void save(Account acc) {
try {
java.io.BufferedWriter writer = new java.io.BufferedWriter(
new java.io.FileWriter("data.txt", true)
);
writer.write(acc.app + ";" + acc.username + ";" + acc.password);
writer.newLine();
writer.close();
System.out.println("Conta guardada!");
} catch (Exception e) {
System.out.println("Erro ao guardar ficheiro.");
}
}
public static void search(String termo) {
try {
java.io.BufferedReader reader = new java.io.BufferedReader(
new java.io.FileReader("data.txt")
);
String line;
boolean encontrado = false;
while ((line = reader.readLine()) != null) {
if (line.toLowerCase().contains(termo.toLowerCase())) {
String[] parts = line.split(";");
System.out.println("\nAplicação/Site: " + parts[0] +
" | Nome/Email: " + parts[1] +
" | Palavra-passe: " + parts[2]);
encontrado = true;
}
}
if (!encontrado) {
System.out.println("Nenhuma conta encontrada.");
}
reader.close();
} catch (Exception e) {
System.out.println("Erro ao procurar.");
}
}
public static void delete(String termo) {
try {
java.io.File inputFile = new java.io.File("data.txt");
java.io.File tempFile = new java.io.File("temp.txt");
java.io.BufferedReader reader = new java.io.BufferedReader(
new java.io.FileReader(inputFile)
);
java.io.BufferedWriter writer = new java.io.BufferedWriter(
new java.io.FileWriter(tempFile)
);
String line;
boolean apagado = false;
while ((line = reader.readLine()) != null) {
if (line.toLowerCase().contains(termo.toLowerCase())) {
apagado = true;
continue;
}
writer.write(line);
writer.newLine();
}
writer.close();
reader.close();
inputFile.delete();
tempFile.renameTo(inputFile);
if (apagado) {
System.out.println("Conta(s) apagada(s)!");
} else {
System.out.println("Nenhuma conta encontrada.");
}
} catch (Exception e) {
System.out.println("Erro ao apagar.");
}
}
}
class PasswordGenerator {
public static String generate() {
String chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
StringBuilder pass = new StringBuilder();
java.util.Random rand = new java.util.Random();
for (int i = 0; i < 10; i++) {
pass.append(chars.charAt(rand.nextInt(chars.length())));
}
return pass.toString();
}
}