PDA

Visualizza versione completa : [C#]Generatore di Password


Kleidemos
12-01-2003, 21.49.57
Sto cercando di fare un generatore di password in C# ed ecco che ho pensato:

//
//
//Generatore di password (Console version) 0.1 Alpha
//
//
using System;
using System.Random;

// La classe contenente il generatore
public class PasGen {

public PasGen() {
Console.WriteLine("\t\t -- Benvenuto nel generatore di password! -- \n");
Console.WriteLine("Inserisci di quanti caratteri vuoi la password:\n");
int quant= Console.ReadLine();
}
// L'array delle vocali
public string[] vocali= new string[4];
vocali[0]= "a";
vocali[1]= "e";
vocali[2]= "i";
vocali[3]= "o";
vocali[4]= "u";
// L'array delle consonanti
public string[] consonanti= new string[20];
consonanti[0]= "b";
consonanti[1]= "c";
consonanti[2]= "d";
consonanti[3]= "f";
consonanti[4]= "g";
consonanti[5]= "h";
consonanti[6]= "l";
consonanti[7]= "m";
consonanti[8]= "n";
consonanti[9]= "p";
consonanti[10]= "q";
consonanti[11]= "r";
consonanti[12]= "s";
consonanti[13]= "t";
consonanti[14]= "v";
consonanti[15]= "z";
consonanti[16]= "$";
consonanti[17]= "w";
consonanti[18]= "x";
consonanti[19]= "y";
consonanti[20]= "@";
// la gunzione che genera la password
public void Genera(int quantiCar) {
int quanto = quantiCar;
int i, y;
string pwd;
for (i=0;i<quanto;i++) {
for (y=0;i<quanto+5;y++) {
Random rdm1 = newRandom(unchecked((int)DateTime.Now.Ticks));
Random rdm2 = newRandom(unchecked((int)DateTime.Now.Ticks));
Random rdm3 = newRandom(unchecked((int)DateTime.Now.Ticks));
Random rdm3 = newRandom(unchecked((int)DateTime.Now.Ticks));
pwd = consonanti[y]+ vocali[rdm1] +vocali[rdm2]+ vocali[rdm3]+consonanti[y];
}
return pwd;
}
Console.WriteLine("Ecco la password:{0}\n", pwd);
}


}

public class Print:PasGen {
public static void Main(){
PasGen gen = new PasGen();
gen.Genera(quant);
}
}
Ma mi da:

P8257 WebMaster
13-01-2003, 00.01.21
Prova a riempire l'array con la sintassi:



{ elemento, elemento, ... }


dovrebbe darti meno problemi..

inoltre ti ricordo che nella programmazione ad oggetti viene assegnata al costruttore la funzione di inizializzare la classe e solo quella. Come consiglio ti esorto a spostare su altri metodi l'interfaccia utente o quant'altro.

Bye :cool:

LoryOne
13-01-2003, 12.14.57
Mi sembra che ci siano un po di imperfezioni e/o possibili errori di overflow.

Random rdm3 = newRandom(unchecked((int)DateTime.Now.Ticks));
Questa riga doppia.

Sei sicuro che rdm1,rdm2 ed rdm3 diano SEMPRE un valore compreso tra 0 e 4 ?
Y legato al valore del parametro QuantiCar che passi nella funzione Genera.
QuantiCar DEVE essere compreso tra 0 e 20 (meglio tra 0 e 15)

Non mi chiaro questo passaggio:
for (y=0;i<quanto+5;y++)
Se passassi 20 a quanto, consonanti[y] che valore avrebbe ?

Kelidemos smentiscimi il prima possibile !:eek:

Kleidemos
13-01-2003, 20.29.43
Provate il prog!

Kleidemos
15-01-2003, 16.20.50
Originariamente inviato da Kleidemos
Provate il prog!

nessun dice nulla?

LoryOne
15-01-2003, 18.48.38
Io ho provato ad estrarlo ma mi da un errore, probabilmente perch non ho l'ultima versione di WinRAR.

Fai cos:
Rinomina l'exe .ZIP o .RAR, come preferisci e poi allega quello.
Una volta scaricato io rinomino il file .EXE e via.
(Tanto di dimensioni ridottissime, no ?)

Il programma ti crea solo una stringa composta da x lettere random e basta, oppure qualcosa di pi evoluto ?