Avatar billede mutalisk Nybegynder
10. april 2006 - 16:27 Der er 8 kommentarer og
1 løsning

Hjælp til pass generator

Her er mit script:

using System;
using System.Collections.Generic;

namespace Password_Maker
{
    class MainClass
    {
        public static void Main(string[] args)
        {
            int i = 1;
            int total = 10;
            while (i <= total)
            {
                Console.WriteLine(RandomPassword.Make(8));
                i++;
            }
            Console.ReadLine();
        }
    }
   
   
    public class RandomPassword
    {
        public static int Make(int length)
        {           
            Random RandomClass = new Random();
            int RandomNumber = RandomClass.Next();
            RandomNumber = RandomClass.Next(1, 10000);
            return RandomNumber;   
        }
    }
}


Det jeg vil have den til er at udskrive 10 forskellige tal i intervallet 1-10000, men det den gør er at udskrive først 1 tal, og derefter et andet tal, men det andet tal holder den så fast i og udskriver 9 gange.

Hvad er årsagen til dette?
Avatar billede arne_v Ekspert
10. april 2006 - 16:36 #1
du skal kun lave et Random objekt og genbruge det !
Avatar billede arne_v Ekspert
10. april 2006 - 16:36 #2
public class RandomPassword
    {
        private Random RandomClass = new Random();
        public static int Make(int length)
        {         
            int RandomNumber = RandomClass.Next();
            RandomNumber = RandomClass.Next(1, 10000);
            return RandomNumber; 
        }
    }
Avatar billede arne_v Ekspert
10. april 2006 - 16:39 #4
jeg lavede en primitiv password generator til et andet spoergsmaal engang
sidste aar:

using System;
using System.Text;

class MainClass
{
    private static Random rng = new Random();
    public static string newPassword(int l)
    {
        char[] valid = { 'A', 'B', 'C', '2', '3', '4' };
        StringBuilder sb = new StringBuilder("");
        for(int i = 0; i < l; i++)
        {
            sb.Append(valid[rng.Next(valid.Length)]);
        }
        return sb.ToString();
    }
    public static void Main(string[] args)
    {
        for(int i = 0; i < 10; i++)
        {
            string brugernavn = newPassword(6);
            string kodeord = newPassword(6);
            Console.WriteLine(brugernavn + " " + kodeord);
        }
    }
}
Avatar billede mutalisk Nybegynder
10. april 2006 - 16:43 #5
Perfekt, tak for hjælpen!

Gør således at jeg kan give dig points ;)
Avatar billede mutalisk Nybegynder
10. april 2006 - 16:46 #6
Hov

Kunne jeg ikke lige få dig til at forklare hvad der sker her:

public static string newPassword(int l)
    {
        char[] valid = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'o', 'p', 'q', 'q', 's', 't', 'u', 'v', 'w', 'x', 'z' };
        StringBuilder sb = new StringBuilder("");
        for(int i = 0; i < l; i++)
        {
            sb.Append(valid[rng.Next(valid.Length)]);
        }
        return sb.ToString();
    }


Helst lidt detaljeret, forstår ik den kode...
Avatar billede arne_v Ekspert
10. april 2006 - 17:08 #7
svar
Avatar billede arne_v Ekspert
10. april 2006 - 17:08 #8
valid.Length giver antal valide tegn i password

rng.Next(valid.Length) giver et tilfaeldigt tal 0 ... antal valide tegn - 1


valid[rng.Next(valid.Length)] giver et tilfaeldigt validt tegn

ellers akkumulerer man bare i en StringBuffer og returnerer resultatet
Avatar billede mutalisk Nybegynder
10. april 2006 - 17:23 #9
Okay, tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester