Загрузка...

Хелп как пофиксить

Тема в разделе C# создана пользователем еблпн_inactive4868443 6 авг 2022. 201 просмотр

  1. еблпн_inactive4868443
    еблпн_inactive4868443 Автор темы 6 авг 2022 Заблокирован(а) 8 5 янв 2022
    [IMG]
    я вот эту хуятину запускаю циклом несколько раз
    [IMG]
    А на выходе получаю вот такое
    [IMG]


    я ноль в киберопасности
     
  2. Gekyume
    Gekyume 6 авг 2022 Пишу код - https://lolz.live/threads/6480564/ 4518 5 авг 2021
    У тебя в функции вывод строчки, эту функцию ты запускаешь в цикле, отсюда такой вывод
     
    1. Посмотреть предыдущие комментарии (5)
    2. unnamed001
      Gekyume, Да, нужно srand(GetTickCount()) перед этим вызывать.
    3. vtlstolyarov
      еблпн_inactive4868443, блять, ну ты и решение нашел :) это известная проблема в .net framework (в .net core её пофиксили) - это потому что объект рэндома инициализируется временем и если создать несколько объектов очень быстро то у них у всех будет одинаковый seed, и соответственно они все будут выдавать одинаковую последовательность. Самое простое решение - иметь только один статический объект рэндома (ибо оно и без этой проблемы тебе нахер не надо создавать объект рэндома на каждый пароль)

      C#
      using System;

      class Program
      {
      static void Main()
      {
      for (int i = 0; i < 100; i++)
      {
      Console.WriteLine(GeneratePassword());
      }
      }

      static Random rnd = new Random();
      const string valid = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*?_-";
      static string GeneratePassword()
      {
      char[] password = new char[rnd.Next(8, 20)];
      for (int i = 0; i < password.Length; i++)
      {
      password[i] = valid[rnd.Next(0, valid.Length)];
      }

      return new string(password);
      }
      }
    4. Yotic
      vtlstolyarov, Читал комментарии и орал с того, что никто не замечает rnd в методе)
Загрузка...
Top