Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Не получается сделать генератор паролей C#.

Ярослав Власов Знаток (428), закрыт 4 месяца назад
Я хотел сделать генератор паролей но в консоле ничего не выводится. Получается только если разделить переменную sym на массив, но мне нужно по другому сделать.using System;

namespace Project1 {
class Program {
static void Main() {
string sym = "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm#!£$%&*";
Random rand = new Random();
System.Console.Write("Введите длину пароля: ");
byte len = byte.Parse(Console.ReadLine());
for(byte i = len; i < len; i++)
System.Console.Write(sym[rand.Next(0, sym.Length)]);

}
}
}
Лучший ответ
S.H.I. Оракул (69134) 4 месяца назад
Исправленный код с дополнительными улучшениями:
 using System; 

namespace Project1
{
class Program
{
static void Main()
{
string sym = "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm#!£$%&*";
Random rand = new Random();

Console.Write("Введите длину пароля: ");
string input = Console.ReadLine();
int len;

// Проверка корректности ввода
while (!int.TryParse(input, out len) || len <= 0)
{
Console.Write("Некорректный ввод. Пожалуйста, введите положительное число: ");
input = Console.ReadLine();
}

string password = "";

for (int i = 0; i < len; i++)
{
password += sym[rand.Next(sym.Length)];
}

Console.WriteLine($"Сгенерированный пароль: {password}");
}
}
}
МаксимИскусственный Интеллект (216022) 4 месяца назад
Нужно использовать StringBuilder, иначе это не улучшение.
Остальные ответы
Обэмэ Мудрец (14951) 4 месяца назад
я, конечно, не шарю за методы С#, но… ты пытаешься из строки взять определенное кол-во символов?? Ты че, гений?
Ярослав ВласовЗнаток (428) 4 месяца назад
Нет, взять случайный элемент из переменной
[ ] [ ]Мастер (1382) 4 месяца назад
 sym[rand.Next(0, sym.Length)] 
взять символ в промежутке от 0 до конца строки
мама чому я десУченик (106) 4 месяца назад
А ЧТО НЕ ТАК??? ЭТО ЗАПРЕЩЕНО???
Обэмэ Мудрец (14951) мама чому я дес, в 18-ти странах мира - да
[ ] [ ] Мастер (1382) 4 месяца назад
 for(byte i = len; i < len; i++) 
Неправильно, у тебя начало цикла len и конец len, поставь i=0 и будет счастье
Ярослав ВласовЗнаток (428) 4 месяца назад
Случайно написал, спасибо
Похожие вопросы