YouCanHateMeNow Ответов: 2

Генератор случайных паролей в консоли VB


Эй ребята

Как я могу создать генератор случайных паролей?

Module Module1

    Sub Main()
        Dim passwordlength As String
        Dim s As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789?!" 'All characters which will be used for the random passowrd        

         Dim r As Random
        Dim i As Integer
        Console.WriteLine("-- Passwort-Generator --")
        Console.WriteLine("Choose the Password length")
        passwordlength = Console.ReadLine() 'The length of the Password which will be generated
        For i = 1 To passwordlength
        Next

        Randomize()



Как я могу случайным образом выбрать символы из моего "пула символов" (строка "s")

Например (чтобы все понимали, что я хочу запрограммировать): пользователи отвечают с 9 на вопрос о длине пароля. Теперь программа должна случайным образом выбрать 9 символов из всех символов, которые определены в строке "s".

Извините за мой английский, я приехал из Швейцарии :)

PIEBALDconsult

Почему? Полностью случайный пароль очень трудно запомнить и, скорее всего, приведет к тому, что он будет записан.
Я обнаружил, что использование base-64 может привести к случайному паролю, который соответствует критериям систем, которые я использую.
Например, "пароль" становится "cGFzc3dvcmQ=", тогда мне нужно только запомнить простое слово, которое я использовал.

YouCanHateMeNow

Я знаю, это просто квест от нашего учителя ИТ ;)

Это не обязательно должен быть супер-безопасный инструмент, который будет использоваться в реальной обстановке.

PIEBALDconsult

А, так это домашнее задание. Здесь мы этого не делаем.

Sergey Alexandrovich Kryukov

Небезопасный пароль не нужно генерировать...
Проблема в том, что, несмотря на то, что вы представили какой-то код, сообщение можно было бы классифицировать как "без усилий" (хотя я об этом не сообщал). Формально вы ввели какой-то код, но даже не пытались сгенерировать пароль. Почему? Кажется, это совсем не трудно...
—СА

Sergey Alexandrovich Kryukov

Тем не менее, генераторы случайных паролей широко используются. (Хотя я не знаю, сколько пользователей используют сгенерированные пароли.) Пользователи могут использовать инструменты, консолидирующие набор паролей под "мастер-паролем", например open-source KeePass.exe.

Я думаю, что вы правы; вряд ли многие используют сгенерированные пароли; но это не может служить оправданием для того, чтобы не предлагать генераторы паролей...

—СА

PIEBALDconsult

В лучшем случае их можно использовать для неинтерактивных вещей-как в случае с диспетчерами соединений SSIS и службами Windows.

Sergey Alexandrovich Kryukov

Как я уже сказал, другим вариантом были бы такие инструменты, как KeePass. Он интерактивный, только пароль хранится в безопасном месте пользователя с помощью сильного шифрования и сильных ключей; пользователь должен помнить только один ключ, но он этот забывается, все пароли забываются...
—СА

2 Ответов

Рейтинг:
2

Tomas Takac

Вы уже объявили переменную случайного класса, так что вы находитесь на хорошем пути. Вы в основном случайным образом выбираете 9 символов из строки разрешенных символов и храните их в массиве. Когда вы закончите вы просто создадите строку пароля из этого массива:

Dim s As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789?!" 
Dim r As New Random
Const passwordLength As Integer = 9
Dim passwordChars() As Char = New Char(passwordLength - 1) {}
Dim charIndex As Integer

For i As Integer = 0 To passwordLength - 1
  charIndex = r.Next(s.Length)
  passwordChars(i) = s(charIndex)
Next

Dim password As New String(passwordChars)


Рейтинг:
0

Afzaal Ahmad Zeeshan

Вам нужно использовать случайный класс, чтобы генерировать случайные числа. Но это дало бы вам случайное целое число, а затем вы можете использовать эти числа для вызова различных алфавитов в этих индексах.

Вы можете прочитать мою предыдущую статью, чтобы создать случайные строки для URL-адресов, вместо того чтобы использовать их в URL-адресах, вы можете использовать их в качестве пароля. Он генерирует случайные строки, и вы также можете использовать его в своем приложении.

Понимание случайных URL-адресов и их создание в ASP.NET[^]

Воспользуйся этот преобразователь[^] чтобы преобразовать код C# в VB.NET.