Hallo,
wie kann ich eine Liste von Passwörtern erzeugen= Ich habe die Methode für das Erzeuegen. Aber wenn ich sie mehrmals aufrufe, erscheint immer dasselbe Passwort.
Verstehe nicht nicht so ganz. Eiegenltiuch müsste er bei jedem Schleifendurchlauf ein neues Passwort erzeugen??
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication3
{
class Program
{
public static string CreateRandomPassword(int passwordLength)
{
string allowedChars = "abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ0123456789!@$?_-";
char[] chars = new char[passwordLength];
Random rd = new Random();
for (int j = 0; j < passwordLength; j++)
{
chars[j] = allowedChars[rd.Next(0, allowedChars.Length)];
}
rd = null;
return new string(chars);
}
static void Main(string[] args)
{
for (int i=0; i<20; i++)
{
Console.WriteLine(Program.CreateRandomPassword(10));
}
Console.WriteLine(Program.CreateRandomPassword(5));
}
}
}
Hallo degri2006,
Random.Next nimmt bei der Berechnung die Zeit. Die ist bei dir und den heutigen Rechner nahezu gleich, daher hast du immer dasselbe Passwort, weil die Nummern immer gleich sind.
Btw: Wenn du das Debuggst, dann bekommst du andre Passwörter. Es sei denn, du debuggst so schnell wie dein Rechner 😉
Definier das Random ausserhalb und setz es nicht auf null, dann sollte es gehen.
Etwa so:
public static string CreateRandomPassword(int passwordLength, Random random)
{
string allowedChars = "abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ0123456789!@$?_-";
char[] chars = new char[passwordLength];
for (int j = 0; j < passwordLength; j++)
{
int index = random.Next(0, allowedChars.Length);
chars[j] = allowedChars[index];
}
return new string(chars);
}
static void Main(string[] args)
{
Random random = new Random();
for (int i = 0; i < 20; i++)
{
Console.WriteLine(Program.CreateRandomPassword(10, random));
}
Console.WriteLine(Program.CreateRandomPassword(5, random));
Console.ReadLine();
}
Schaue auch...da war einer schneller...;)
Gruss
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
Vielen Dank!! Ich habe den ganzen Vormittag damit verbracht. Im Debugger lief alles richtig, nur wenn es um was ging, war alles Mist. War total verwirrt.
Das sind allerdings recht schwache Passwörter, wenn man den Erstellungszeitpunkt kennt, kann man die alle rekonstruieren.
Die Frage aus dem Startbeitrag wird in der FAQ vollständig und umfassend beantwortet. Daher bitte immer erste in der FAQ schauen, bevor unnötig ein neuer Thread ausgemacht wird. Siehe und beachte [Hinweis] Wie poste ich richtig? Punkt 1.1.