Какой инструмент командной строки может генерировать пароли в Windows?
Я ищу что-то такое, как использование
passgen <length> <charset>
6 ответов
Кроссплатформенность: использование PERL
Есть генератор паролей PERL, который работает для Windows, *nix, OS X и т. Д.
Usage: genpass [-OPTIONS] LENGTH
-s, --symbols Exclude symbol characters.
-n, --numbers Exclude number characters.
-u, --uppercase Exclude uppercase characters.
-l, --lowercase Exclude lowercase characters.
В Windows его можно преобразовать в исполняемый файл.
Windows, только
Не совсем то, что вы хотите, но также может пригодиться. В командной строке введите:
net user administrator /random
Unix / Linux
Смотрите ответы на этот вопрос: Генератор случайных паролей: много, в столбцах, в командной строке, в Linux
Зависит от того, насколько сильно вы хотите, чтобы ваш пароль. Конечно, если безопасность не является проблемой, то echo %random%
в cmd или get-random
в PowerShell будет просто работать
С PowerShell вы можете просто позвонить GeneratePassword(int length, int numberOfNonAlphanumericCharacters)
, Например, чтобы сгенерировать 12-значный длинный пароль с минимум 3 специальными символами, вы можете назвать его следующим образом
[Reflection.Assembly]::LoadWithPartialName("System.Web")
[System.Web.Security.Membership]::GeneratePassword(12, 3)
На MS TechNet есть несколько постов в блоге:
- Генерация нового пароля с помощью Windows PowerShell
- Как создать безопасный случайный пароль с помощью PowerShell
- Генератор случайных паролей PowerShell
Если вы не хотите работать с PowerShell, вот вам пакетное решение
Взгляните на генератор паролей командной строки SecurePassword Kit (архивная ссылка). Он имеет следующий синтаксис:
gspk.exe /g [-l:password_length] [-a:charset_options]
Просто для пояснения: gspk.exe - это исполняемый файл программы с графическим интерфейсом, но его также можно использовать в командной строке, вызывая его с аргументами.
Вы можете использовать PowerShell, теперь он кроссплатформенный, вы можете скачать PowerShell 7 с GitHub. Я могу дать вам этот простой код для этой задачи. Примечание. Я тестировал свой код только в PowerShell 7. Я гарантирую, что мой код будет работать, однако я не знаю, будет ли он работать в PowerShell 5.1.
Код:
$randomstring=for ($i=0;$i -lt 100;$i++) {
$choice=$(get-random -min 0 -max 99) % 2
switch ($choice)
{
0 {[char]$(Get-Random -Min 65 -Max 90)}
1 {[char]$(Get-Random -Min 97 -Max 122)}
}
}
$randomstring=$randomstring -join ""
$randomstring
Он сгенерирует случайную строку из заглавных и строчных латинских букв длиной 100 (всего 100 букв).
Пример вывода:
GRTkSpLsUtigeJfpENKoyoFGeUSgbWDNIQKFmDeDldtsICSIdaFAfpkKikVmyLPNojQJwrwBTjSqygEUeJiaJNjVARhpHPUWDCYw
Теперь, если вы хотите добавить символы и цифры:
[array]$symbols=@('+','-','*','/','?','\')
$randomstring=for ($i=0;$i -lt 100;$i++) {
$choice=$(get-random -min 0 -max 99) % 4
switch ($choice)
{
0 {[char]$(Get-Random -Min 65 -Max 90)}
1 {[char]$(Get-Random -Min 97 -Max 122)}
2 {$symbols[$(Get-Random -Min 0 -Max $($symbols.count-1))]}
3 {$(Get-Random -Min 0 -Max 9)}
}
}
$randomstring=$randomstring -join ""
$randomstring
Пример вывода:
CoRWBjiphnfO3fXXvQaYS?JLGWISH?wRtn-P*nS-E*y8D?E53/E4?+?q7Kd-M//?2tl5t*gU*pHdqorL5/5a0wS6N3*2SvOx-ni8
Настройте по мере необходимости; Если вам нужна более короткая строка, измените число 100 в$i -lt 100
на желаемый номер. А если вам нужны другие символы, поместите в них символ, заключенный в кавычки.[array]$symbols=@('+','-','*','/','?','\')
строка, символы разделяйте запятой;
deepsix будет генерировать пароли (или множество паролей) в командной строке.
Он кроссплатформенный, разработанный на C, и работает на всех платформах, на которых я его тестировал: macOS, x86 и 64-битной Windows и Linux. Так же, как вы описываете, он предлагает-cNumber
Чарса и-iIterations
и в настоящее время предлагает прописные, строчные и числовые символы.
В настоящее время я добавляю безопасные для пароля символы в версии 2.0, но версия 1.0c доступна уже сейчас, работает локально и не требует Интернета. Это инструмент командной строки, без графического интерфейса, но это не должно быть проблемой. Я опубликовал исходный код и несколько предварительно скомпилированных исполняемых файлов платформы. Надеюсь, кто-то еще выиграет от этого, поскольку я хотел его достаточно долго и в конце концов написал его сам.
Хорошо, поздно, но это будет полезно. Я надеюсь.
TL:DR Итак, позвольте мне поделиться этим с вами https://github.com/the-j0k3r/batch-101 и посмотреть, как работает простой генератор паролей.
Давным-давно я написал генератор паролей, он позволял мне генерировать пароли с более высокой энтропией, чем %random% (поскольку %random% на самом деле вообще не является случайным) и любой длины в Windows, а также позволяет сохранять пароли в файл со ссылкой на каждый пароль, поэтому теоретически вы можете сохранить этот файл на внешнем диске для удобства использования и дополнительной безопасности.