📢 Nuovo Corso Laravel API disponibile!

Progetto: Generatore di Password Complesse in C

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

  1. Linguaggio di Programmazione: C
  2. Interfaccia Utente: Interfaccia a riga di comando
  3. Funzionalità:
    • Specificare la lunghezza della password
    • Generare una password contenente lettere maiuscole, minuscole, numeri e simboli speciali

Struttura del Progetto

  1. main.c: Contiene il main del programma e la logica per la generazione della password.

Passaggi

  1. 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

  1. Compilare il programma:

    Terminal window
    gcc -o generatore_password main.c
  2. Eseguire il programma:

    Terminal window
    ./generatore_password
  3. Interazione con l’utente:

    • Inserisci la lunghezza desiderata per la password.
    • Il programma genererà e mostrerà la password.

Estensioni Possibili

  1. Aggiungere ulteriori simboli speciali: Ampliare l’array symbols per includere altri caratteri speciali.
  2. Opzioni di configurazione: Permettere all’utente di scegliere quali tipi di caratteri includere nella password (maiuscole, minuscole, numeri, simboli).
  3. Validazione avanzata: Implementare controlli aggiuntivi per garantire che la password contenga almeno un carattere di ciascun tipo scelto.
  4. Interfaccia grafica: Creare una semplice interfaccia grafica per il generatore di password utilizzando librerie grafiche come GTK o Qt.