Progetto: Generatore di Password Complesse in C
Codegrind Team•Jul 12 2024
Descrizione del Progetto
In questo progetto, realizzerai un generatore di password complesse in C. Il programma permette all’utente di specificare la lunghezza della password e genera una password casuale contenente lettere maiuscole, minuscole, numeri e simboli speciali.
Requisiti
- Linguaggio di Programmazione: C
- Interfaccia Utente: Interfaccia a riga di comando
- Funzionalità:
- Specificare la lunghezza della password
- Generare una password contenente lettere maiuscole, minuscole, numeri e simboli speciali
Struttura del Progetto
- main.c: Contiene il main del programma e la logica per la generazione della password.
Passaggi
- Creare il file
main.c
:- Implementare le funzioni per la generazione della password.
Codice del Progetto
main.c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define NUM_LETTERS 26
#define NUM_DIGITS 10
#define NUM_SYMBOLS 10
const char letters_lower[NUM_LETTERS] = "abcdefghijklmnopqrstuvwxyz";
const char letters_upper[NUM_LETTERS] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
const char digits[NUM_DIGITS] = "0123456789";
const char symbols[NUM_SYMBOLS] = "!@#$%^&*()";
void genera_password(int lunghezza, char *password) {
int i;
for (i = 0; i < lunghezza; i++) {
int tipo = rand() % 4;
switch (tipo) {
case 0:
password[i] = letters_lower[rand() % NUM_LETTERS];
break;
case 1:
password[i] = letters_upper[rand() % NUM_LETTERS];
break;
case 2:
password[i] = digits[rand() % NUM_DIGITS];
break;
case 3:
password[i] = symbols[rand() % NUM_SYMBOLS];
break;
}
}
password[lunghezza] = '\0';
}
int main() {
int lunghezza;
char password[100];
srand(time(NULL));
printf("Inserisci la lunghezza della password: ");
scanf("%d", &lunghezza);
if (lunghezza <= 0 || lunghezza >= 100) {
printf("Lunghezza non valida. Deve essere compresa tra 1 e 99.\n");
return 1;
}
genera_password(lunghezza, password);
printf("Password generata: %s\n", password);
return 0;
}
Istruzioni per l’Esecuzione
-
Compilare il programma:
gcc -o generatore_password main.c
-
Eseguire il programma:
./generatore_password
-
Interazione con l’utente:
- Inserisci la lunghezza desiderata per la password.
- Il programma genererà e mostrerà la password.
Estensioni Possibili
- Aggiungere ulteriori simboli speciali: Ampliare l’array
symbols
per includere altri caratteri speciali. - Opzioni di configurazione: Permettere all’utente di scegliere quali tipi di caratteri includere nella password (maiuscole, minuscole, numeri, simboli).
- Validazione avanzata: Implementare controlli aggiuntivi per garantire che la password contenga almeno un carattere di ciascun tipo scelto.
- Interfaccia grafica: Creare una semplice interfaccia grafica per il generatore di password utilizzando librerie grafiche come GTK o Qt.