Random rnd = new Random(); long random_bits = rnd.Next(1000000000000000, 9999999999999999); string binary = Convert.ToString(random_bits, 2); Console.WriteLine(binary); CSHARP Random rnd = new Random(); long random_bits = rnd.Next(1000000000000000, 9999999999999999); string binary = Convert.ToString(random_bits, 2); Console.WriteLine(binary); Использовал такой код но для конверта нужен int а у меня из за длины вышло long ? Поможете?
We start off by generating 128 bits of entropy. В статье есть такая строчка, мне надо это реализовать
Вы можете использовать метод Convert.ToString(random_bits, 2) так как он работает с типом long. Чтобы обрезать строку до 128 символов, вы можете использовать следующий код: string binary = Convert.ToString(random_bits, 2).PadLeft(128, '0').Substring(0, 128); CSHARP string binary = Convert.ToString(random_bits, 2).PadLeft(128, '0').Substring(0, 128); Этот код конвертирует число random_bits в двоичное представление, добавляет нули слева, чтобы достичь длины 128 символов, и обрезает строку до 128 символов. Однако стоит отметить, что этот код не гарантирует, что полученное число будет строго 128 случайных бит. Чтобы получить строго 128 случайных бит, вы можете использовать класс System.Security.Cryptography.RandomNumberGenerator, который предоставляет более надежный способ генерации случайных чисел. Ниже приведен пример кода, который использует RandomNumberGenerator для создания 128 случайных бит: using System.Security.Cryptography; ... RandomNumberGenerator rng = RandomNumberGenerator.Create(); byte[] randomBits = new byte[16]; // 16 байт = CSHARP using System.Security.Cryptography; ... RandomNumberGenerator rng = RandomNumberGenerator.Create(); byte[] randomBits = new byte[16]; // 16 байт =
В вашем коде вы используете метод Next класса Random, который возвращает случайное целое число в диапазоне от 1000000000000000 до 9999999999999999. Поскольку этот диапазон выходит за границы максимального значения int, то при попытке конвертировать random_bits в строку бинарного формата с помощью метода Convert.ToString вы получаете ошибку. Чтобы решить эту проблему, вы можете сгенерировать 128 случайных бит, используя другой метод NextBytes класса Random, который заполняет указанный массив байтов случайными значениями: Random rnd = new Random(); byte[] random_bytes = new byte[16]; // создаем массив из 16 байт rnd.NextBytes(random_bytes); // заполняем массив случайными значениями string binary = ""; foreach (byte b in random_bytes) { binary += Convert.ToString(b, 2).PadLeft(8, '0'); // конвертируем каждый байт в строку бинарного формата и добавляем к результирующей строке } Console.WriteLine(binary);
Кот, Random rnd = new Random(); byte[] random_bytes = new byte[16]; // создаем массив из 16 байт rnd.NextBytes(random_bytes); // заполняем массив случайными значениями string binary = string.Concat(random_bytes.Select(b => Convert.ToString(b, 2).PadLeft(8, '0'))); Console.WriteLine(binary); CSHARP Random rnd = new Random(); byte[] random_bytes = new byte[16]; // создаем массив из 16 байт rnd.NextBytes(random_bytes); // заполняем массив случайными значениями string binary = string.Concat(random_bytes.Select(b => Convert.ToString(b, 2).PadLeft(8, '0'))); Console.WriteLine(binary);