Если тебе нужно сгенерировать много паролей или ты решил, что недостаточно доверяешь сторонним утилитам, то можешь взять за основу этот небольшой скрипт на PowerShell. Ты можешь доработать и модифицировать его по своему усмотрению — заодно поупражняешься в программировании на «пошике».

Собственно, вот код скрипта.

Write-Host("Программа для генерации паролей. Версия 0.1")
$Complexity = Read-Host ″Пароль со спецсимволами?″

if ($Complexity -eq "1"){
    $NonAlfaNumeric = Read-Host ″Количество нестандартных символов″
}

$PassLength = Read-Host ″Длина пароля (1-128)″
$PassNumber = Read-Host ″Количество паролей″
if ($Complexity -eq "1"){
    Add-Type -AssemblyName System.Web
    1..$PassNumber | ForEach-Object -process {
        [System.Web.Security.Membership]::GeneratePassword($PassLength,$NonAlfaNumeric)
    }
}else{
    1..$PassNumber | ForEach-Object -process {
        $PassResult = -join (1..$PassLength | % { [char[]]'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' | Get-Random })
        $PassResult
    }
}
Pause

Написан он практически на коленке, некоторые части я позаимствовал из других примеров. Но свою задачу скрипт выполняет.

Вкратце поясню, как он работает. Первым делом мы выбираем сложность пароля: спецсимволы не всегда разрешены в полях для ввода, поэтому добавим возможность отказаться от них. Ну и заодно спросим об их количестве — чем их больше, тем более стойким будет пароль, но тем сложнее его будет набирать вручную. Далее запрашиваем общую длину пароля и количество паролей, которое мы хотим получить на выходе.

Затем идет генерация пароля согласно выбранным параметрам. В случае паролей со спецсимволами используется встроенный командлет PowerShell под названием GeneratePassword. Во втором случае пароль генерируется из массива заранее заданных символов.

Подобный скрипт ты можешь использовать как отдельно, так и в составе более сложных сценариев. К примеру, если тебе понадобится создать сотню пользователей Active Directory, то ты сможешь вызывать его как функцию.



3 комментария

Подпишитесь на ][, чтобы участвовать в обсуждении

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