72 lines
1.9 KiB
C++
72 lines
1.9 KiB
C++
/*
|
|
Nome: Mario
|
|
Cognome: Montanari
|
|
|
|
Genarare una password che soddisfa i criteri:
|
|
- Presenza di almeno una:
|
|
- minuscola;
|
|
- maiuscola;
|
|
- cifra;
|
|
- punteggiatura;
|
|
- Lunghezza della password compresa fra 8 e 12 caratteri;
|
|
*/
|
|
|
|
#include <iostream>
|
|
#include <ctime>
|
|
#include <cstdlib>
|
|
|
|
#define SIZE 12
|
|
|
|
#define NSTAMPA_MIN 5
|
|
#define NSTAMPA_MAX 6
|
|
|
|
#define CARATTERI_MIN 2
|
|
#define CARATTERI_MAX 3
|
|
|
|
#define MINUSCOLA_MIN 97
|
|
#define MINUSCOLA_MAX 122
|
|
|
|
#define MAIUSCOLA_MIN 65
|
|
#define MAIUSCOLA_MAX 90
|
|
|
|
#define CIFRA_MIN 48
|
|
#define CIFRA_MAX 57
|
|
|
|
#define PUNTEGGIATURA_MIN 33
|
|
#define PUNTEGGIATURA_MAX 47
|
|
|
|
using namespace std;
|
|
|
|
void generaPassword(int size, char nMinuscola[], char nMaiuscola[], char nCifra[], char nPunteggiatura[], char nCaratteri);
|
|
|
|
int main(void) {
|
|
srand(time(NULL));
|
|
|
|
char nMinuscola[SIZE];
|
|
char nMaiuscola[SIZE];
|
|
char nCifra[SIZE];
|
|
char nPunteggiatura[SIZE];
|
|
char nCaratteri;
|
|
|
|
generaPassword(SIZE, nMinuscola, nMaiuscola, nCifra, nPunteggiatura, nCaratteri);
|
|
|
|
return 0;
|
|
}
|
|
|
|
void generaPassword(int size, char nMinuscola[], char nMaiuscola[], char nCifra[], char nPunteggiatura[], char nCaratteri) {
|
|
int nStampa = rand() % (NSTAMPA_MAX - NSTAMPA_MIN + 1) + NSTAMPA_MIN;
|
|
for (int j = 0; j < nStampa; j++) {
|
|
nCaratteri = rand() % (CARATTERI_MAX - CARATTERI_MIN + 1) + CARATTERI_MIN;
|
|
for (int i = 0; i < nCaratteri; i++) {
|
|
nMinuscola[i] = rand() % (MINUSCOLA_MAX - MINUSCOLA_MIN + 1) + MINUSCOLA_MIN;
|
|
cout << nMinuscola[i];
|
|
nMaiuscola[i] = rand() % (MAIUSCOLA_MAX - MAIUSCOLA_MIN + 1) + MAIUSCOLA_MIN;
|
|
cout << nMaiuscola[i];
|
|
nCifra[i] = rand() % (CIFRA_MAX - CIFRA_MIN + 1) + CIFRA_MIN;
|
|
cout << nCifra[i];
|
|
nPunteggiatura[i] = rand() % (PUNTEGGIATURA_MAX - PUNTEGGIATURA_MIN + 1) + PUNTEGGIATURA_MIN;
|
|
cout << nPunteggiatura[i];
|
|
}
|
|
cout << endl;
|
|
}
|
|
} |