Добрый день.
Написал обычный консольный генератор, но столкнулся с такой проблемой, что повторно используя программу, длинна пароля суммируется.
К примеру ввожу длину пароля в два символа, происходит генерация, далее повторив операцию но указав три символа итоговый пароль вырастает до пяти символов, причем два из них используются из прошлого запроса.
Вот исходный код:
using System;
namespace PasswordGenerator
{
class Program
{
static void Main(string[] args)
{
string Pass = "";
string rnd_psw = "1234567890QWERTYUIOPASDFGHJKLMNBVCXZ";
int pass_lenght;
Random rnd = new Random();
Console.WriteLine("\t\t\t\t###Типа дофига крутой генератор паролей!!###");
while(true)
{
Console.Write("Введите длину пароля:");
pass_lenght = Convert.ToInt32(Console.ReadLine());
for (int i = 0; i < pass_lenght; i++)
{
Pass = Pass + rnd_psw[rnd.Next(0, rnd_psw.Length)];
}
Console.WriteLine("Ваш пароль:{0}", Pass);
Console.WriteLine("Повторить? y/n");
if (Console.ReadKey(true).Key != ConsoleKey.Y)
break;
}
}
}
}
Я сделал вот что, после строчки кода:
for (int i = 0; i < pass_lenght; i++)
{
Pass = Pass + rnd_psw[rnd.Next(0, rnd_psw.Length)];
}
Console.WriteLine("Ваш пароль:{0}", Pass);
Дописал Pass = null; и получил это:
for (int i = 0; i < pass_lenght; i++)
{
Pass = Pass + rnd_psw[rnd.Next(0, rnd_psw.Length)];
}
Console.WriteLine("Ваш пароль:{0}", Pass);
Pass = null;
Верно ли я сделал или можно иначе поступить?