|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2011
Messaggi: 1050
|
[c++] generatore password
ho fatto questo esercizio...ma non riesco a compilare ed eseguire...cosa c'è che non va nel codice?
TRACCIA: il sistema deve chiedere all'utente se inserire una password manualmente o generarla automaticamente; controllarne in ogni caso il livello di sicurezza e nel caso di password insicure ripetere il procedimento fino all'ottenimento di una password sicura. Per determinare il livello di sicurezza alla password si assegna un punteggio..la password si considera sicura se tale punteggio è >5. Si assegna cosi: data una password inizialmente al punteggio si assegna un valore uguale al numero di caratteri che compongono la password; a)se la password non contiene almeno una cifra il punteggio viene decrementato di 1; b)se non è presente almeno un underscore(_) o un punto(.) il punteggio si decrementa di 1; c)per ogni coppia di caratteri consecutivi uguali presenti nella password, il punteggio si decrementa di 1; Codice:
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <cstring>
using namespace std;
int controllosicurezza(char *W, int punteggio);
void genera(char *W);
int main(){
char W[100];
int punteggio=0;
int scelta=0;
while(punteggio < 5){
cout<<"Digita 0 per inserire, 1 per generare"<<endl; cin>>scelta;
if(scelta == 0){
cout<<"Digita una password"<<endl;
cin.getline(W,100);
punteggio=controllosicurezza(W,punteggio);}
if(scelta == 1){
genera(W);
punteggio=controllosicurezza(W,punteggio);
}
}
system("pause");
return 0;
}
int controllosicurezza(char *W, int punteggio){
int punteggio=strlen(W);
int n=4;
for(int i=0; i<strlen(W); i++){
if('0'!= W[i] && '1' != W[i] && '2' != W[i] && '3'!= W[i] && '4' != W[i] && '5' != W[i] && '6'!= W[i] && '7' != W[i] && '8' != W[i] && '9' != W[i])
--punteggio;
if('_' != W[i] && '.' != W[i])
--punteggio;
}
for(int i=0; i<strlen(W); i++){
for(int j=1; j<strlen(W); j++){
if(W[i]==W[j] && W[i+1]==W[j+1])
--punteggio;
}
}
return punteggio;
}
void genera(char *W){
char *W={"abcdefghilmnopqrstuvz0123456789._"};
int min=0, random_1=0, random_2=0;
srand(time(0));
min(strlen(W)-1)/2;
for(int i=0; i<strlen(W); i++){
random_1=rand()%min;
random_2=rand()%min;
random_2+=min;
char temp;
temp=w[random_1];
W[random_1]=W[random_2];
W[random_2]=temp;
}
}
|
|
|
|
|
|
#2 |
|
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21969
|
non so, ma penso che almeno un indicazione dell'errore che ti dà il compilatore potrebbe essere leggermente utile
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:43.


















