GenPass

Stato
Discussione chiusa ad ulteriori risposte.
Ciao innanzi tutto bel programma :) appena ho visto scritto "La funzione d exit" ho subito acceso reflector per controllare di che si tratta xD ma il codice è offuscato e non ho trovato niente D: intanti il codice me lo sono fatto tutto con le funzioni random ma lasciamo stare D: volevo sapere che programma hai usato per offuscare il codice? :)

de4dot, drag, and drop, applicazione-cleaned.exe, fatto
 
  • Mi piace
Reazioni: .Eternal.Coding.
Ciao innanzi tutto bel programma :) appena ho visto scritto "La funzione d exit" ho subito acceso reflector per controllare di che si tratta xD ma il codice è offuscato e non ho trovato niente D: intanti il codice me lo sono fatto tutto con le funzioni random ma lasciamo stare D: volevo sapere che programma hai usato per offuscare il codice? :)

E' stato offuscato con EAZFuscator

Questa è la funzione per generare la pass
Codice:
public static string GenerateRandomString(int length, bool specialCharacters = true)
        {
            Random r = new Random();
            char[] result = new char[length];
            for (int i = 0; i < length; i++)
            {
                result[i] = (char)r.Next(33, 126);
                if (!specialCharacters)
                {
                    while (!Char.IsLetterOrDigit(result[i]))
                        result[i] = (char) r.Next(33, 126);
                }
            }
            return new string(result);
        }
 
  • Mi piace
Reazioni: .Eternal.Coding.
de4dot, drag, and drop, applicazione-cleaned.exe, fatto
Un po' macchino come programma ma alla fine ce lo fatta :) grazie!
E' stato offuscato con EAZFuscator

Questa è la funzione per generare la pass
Codice:
public static string GenerateRandomString(int length, bool specialCharacters = true)
        {
            Random r = new Random();
            char[] result = new char[length];
            for (int i = 0; i < length; i++)
            {
                result[i] = (char)r.Next(33, 126);
                if (!specialCharacters)
                {
                    while (!Char.IsLetterOrDigit(result[i]))
                        result[i] = (char) r.Next(33, 126);
                }
            }
            return new string(result);
        }
Tu hai usato una decina di righe... io sulla cinquantina ahah devo ancora imparare molto :)
 
in realtà quella funzione non genera password veramente random, se la mettete in un ciclo e fate salvare in un array i risultati, vedrete che molte di esse (ad una distanza di circa 20 ms) saranno identiche, questo perchè si basa sulla generazione di stringhe partendo dall'orario del sistema che, se troppo vicini, risultano essere uguali.
 
  • Mi piace
Reazioni: Leprechaun
in realtà quella funzione non genera password veramente random, se la mettete in un ciclo e fate salvare in un array i risultati, vedrete che molte di esse (ad una distanza di circa 20 ms) saranno identiche, questo perchè si basa sulla generazione di stringhe partendo dall'orario del sistema che, se troppo vicini, risultano essere uguali.

Basterebbe fare inserire all'utente dei caratteri a caso per rendere il seed più "casuale", ma direi che in questo caso sarebbe stato superfluo
 
  • Mi piace
Reazioni: Leprechaun
esempio di modo "sbagliato", per modo di dire... sto scrivendo spalmato sul divano con il tablet dunque potrei scrivere qualche errore:

dim myb(100) as byte
for i= 0 to 99
Dim rnd As System.Random = New System.Random()
myb(i)=rnd.Next(1, 100)
next

avrete in myb praticamente lo stesso risultato per tutto l'array

invece se utilizziamo una variabile definita in modo statico avremo un vero random, esempio:

dim myb(100) as byte
for i= 0 to 99
static rnd As System.Random = New System.Random()
myb(i)=rnd.Next(1, 100)
next
questo perchè preserva l'istanza
ciauz
 
Stato
Discussione chiusa ad ulteriori risposte.