Posted in: Windows 10, Windows 11, Windows 8 a 8.1, Windows server, Základy PowerShellu

Generování hesel v PowerShellu

Každý správce, který se stará o nějaký identitní systém, potřebuje vymýšlet bezpečná jednorázová hesla. K tomu mu může sloužit například následující kousek PowerShell kódu:

$delka = 10
$specZnaku = 2
Add-Type -AssemblyName System.Web
[System.Web.Security.Membership]::GeneratePassword($delka,$specZnaku)

Verze, která nevyužívá volání .NET:

function Generate-Password
{
param
(
[int] $delka = 12,
[switch] $specZnak
)
$length = $delka
if($specZnak)
{
$charSet = ‚abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789{]+-[*=@:)}$^%;(_!&#?>/|.‘.ToCharArray()
}
else
{
$charSet = ‚abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789‘.ToCharArray()
}
$rng = New-Object System.Security.Cryptography.RNGCryptoServiceProvider
$bytes = New-Object byte
$rng.GetBytes($bytes)
$result = New-Object char
for ($i = 0 ; $i -lt $length ; $i++) {
$result[$i] = $charSet[$bytes[$i]%$charSet.Length]
}
return (-join $result)
}

Back to Top