我正在寻找具有类似用途的东西
passgen <length> <charset>
答案1
跨平台:使用 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 上,检查其他答案。
Unix/Linux
查看该问题的答案:随机密码生成器:多个,在列中,在命令行上,在 Linux 中
答案2
取决于你想要的密码强度。当然,如果你不担心安全问题,那么echo %random%%random%
在 cmd 或Get-Random -Minimum 100000000
在 PowerShell 中就可以正常工作
使用 PowerShell,您有另一个更好的选择:调用GeneratePassword(int length, int numberOfNonAlphanumericCharacters)
。例如,要生成一个长度为 12 个字符且至少包含 3 个特殊符号的密码,您可以这样调用它
# Just need to call once at the start of the script
[Reflection.Assembly]::LoadWithPartialName("System.Web")
[System.Web.Security.Membership]::GeneratePassword(12, 3)
MS TechNet 博客文章中有多篇与此相关的文章:
如果你不想使用 PowerShell,那么这是一个纯批处理解决方案
.NET Core 不支持 System.Web.dll,因此没有[System.Web.Security.Membership]::GeneratePassword()
你必须编写一个自定义密码生成器,或者在网上找到一些可用的代码。下面是PowerShell Core 中的密码生成(6+)
$symbols = '!@#$%^&*'.ToCharArray()
$characterList = 'a'..'z' + 'A'..'Z' + '0'..'9' + $symbols
function GeneratePassword {
param(
[Parameter(Mandatory = $false)]
[ValidateRange(12, 256)]
[int]
$length = 14
)
do {
$password = ""
for ($i = 0; $i -lt $length; $i++) {
$randomIndex = [System.Security.Cryptography.RandomNumberGenerator]::GetInt32(0, $characterList.Length)
$password += $characterList[$randomIndex]
}
[int]$hasLowerChar = $password -cmatch '[a-z]'
[int]$hasUpperChar = $password -cmatch '[A-Z]'
[int]$hasDigit = $password -match '[0-9]'
[int]$hasSymbol = $password.IndexOfAny($symbols) -ne -1
}
until (($hasLowerChar + $hasUpperChar + $hasDigit + $hasSymbol) -ge 3)
$password | ConvertTo-SecureString -AsPlainText
}
也可以看看
- https://gist.github.com/Jaykul/5cb0410abd40672707faf67549404ea8
- https://mohitgoyal.co/2017/01/13/generate-random-password-using-powershell/
你也可以安装密码生成器模块
$ModuleName = "RandomPasswordGenerator"
Get-Module -Name $ModuleName -ListAvailable | Uninstall-Module
Install-Module $ModuleName -Force -Confirm:$false
答案3
查看 SecurePassword Kit命令行密码生成器(存档链接)。其语法如下:
gspk.exe /g [-l:password_length] [-a:charset_options]
只是为了澄清:gspk.exe 是 GUI 程序的可执行文件,但它也可以通过使用参数调用在命令行中使用。
答案4
好吧,虽然有点晚了,但还是有帮助的。我希望如此。
TL:DR 那么让我与你分享一下https://github.com/the-j0k3r/batch-101并查看简单密码生成器
很久以前,我编写了一个密码生成器,它允许我生成熵高于 %random%(因为 %random% 实际上根本不是随机的)并且在 Windows 上长度任意的密码,它还允许将密码保存到文件中,每个密码都有一个引用,因此理论上您可以将该文件保存在外部驱动器上,以便于参考并增加安全性。