Funzione srand con tabella ascii

di il
19 risposte

Funzione srand con tabella ascii

Devo creare una generatore di password di 8 caratteri contenente sia caratteri maiuscoli, minuscoli simboli e cifre... puo andare bene questa formula?
	lettere[i] = rand() % (125 - 33+1)+33;

19 Risposte

  • Re: Funzione srand con tabella ascii

    Prova questo:
    for (i = 0; i < 8; i++) {
    	int valido = 0;
    	do {
    		lettere[i] = '0' + rand() % 'z';
    		if (lettere[i] > '0' && lettere[i] < '9'
    			|| lettere[i] > 'a' && lettere[i] < 'z'
    			|| lettere[i] > 'A' && lettere[i] < 'Z')
    			valido = 1;
    	} while(!valido);
    }
    Crea password lunghe 8 caratteri usando lettere maiuscole, minuscole e numeri. I simboli non li ho messi che non so quali vuoi.
  • Re: Funzione srand con tabella ascii

    Ti dico tutti solo xk la vorrei anche maneggiare io la formula del rand...non mi piace la pappa pronta xD
  • Re: Funzione srand con tabella ascii

    La formula del rand funziona così:
    numero_minimo + rand() % risultati_possibili;
    es. 10 + rand() % 5
    I numeri che possono uscire sono 10, 11, 12, 13, 14
  • Re: Funzione srand con tabella ascii

    Ovvero

    numero_minimo + rand() % (numero_massimo+1-numero_minimo)
  • Re: Funzione srand con tabella ascii

    Mentre per aggiungere i caratteri speciali che voglio io come si fa?
  • Re: Funzione srand con tabella ascii

    Controlli il codice ascii di quei caratteri che vuoi itilizzare
  • Re: Funzione srand con tabella ascii

    Ma se nel caso voglio impostare che almeno ci devono stare 5 caratteri speciali e numeri basta che itero fino quando il criterio non viene soddisfatto vero?
  • Re: Funzione srand con tabella ascii

    palladino.al ha scritto:


    Ma se nel caso voglio impostare che almeno ci devono stare 5 caratteri speciali e numeri basta che itero fino quando il criterio non viene soddisfatto vero?
    Si
  • Re: Funzione srand con tabella ascii

    
    do {
    		lettere[i] = '!' + rand() % 'z';
    		if ((lettere[i] > '!' && lettere[i] < '&')
          || (lettere[i] > '?' && lettere[i] < '@')
          || (lettere[i] > '0' && lettere[i] < '9')
    			|| (lettere[i] > 'a' && lettere[i] < 'z')
    			|| (lettere[i] > 'A' && lettere[i] < 'Z'))
    			valido = 1;
    	} while(!valido);
    	
    cosi?
  • Re: Funzione srand con tabella ascii

    palladino.al ha scritto:


    
    do {
    		lettere[i] = '!' + rand() % 'z';
    		if ((lettere[i] > '!' && lettere[i] < '&')
          || (lettere[i] > '?' && lettere[i] < '@')
          || (lettere[i] > '0' && lettere[i] < '9')
    			|| (lettere[i] > 'a' && lettere[i] < 'z')
    			|| (lettere[i] > 'A' && lettere[i] < 'Z'))
    			valido = 1;
    	} while(!valido);
    	
    cosi?
    Esatto. Devi sono includere tutti i valori presenti nell'if ed è corretto (invece che >/< deve essere >=/<=). Scusa ma quando tel'ho inviato ieri non ci ho fatto caso.
  • Re: Funzione srand con tabella ascii

    Di funzionare funziona ma xk ogni tanto comparono dei simboli non codificati?
  • Re: Funzione srand con tabella ascii

    Perché non funziona
  • Re: Funzione srand con tabella ascii

    Ah bello...xk ho fatto il debug con eclipse e se ne va a fatti suoi...suggerimenti?
  • Re: Funzione srand con tabella ascii

    Il primo suggerimento è scrivere "perché" e non "xk"

    E poi posta TUTTO il codice compreso il main ...
Devi accedere o registrarti per scrivere nel forum
19 risposte