ConvertTo-SecureString
Převede prostý text nebo šifrované řetězce na zabezpečené řetězce.
Syntax
ConvertTo-SecureString
[-String] <String>
[[-SecureKey] <SecureString>]
[<CommonParameters>]
ConvertTo-SecureString
[-String] <String>
[-AsPlainText]
[-Force]
[<CommonParameters>]
ConvertTo-SecureString
[-String] <String>
[-Key <Byte[]>]
[<CommonParameters>]
Description
Rutina ConvertTo-SecureString
převede šifrované standardní řetězce na zabezpečené řetězce. Může také převést prostý text na zabezpečené řetězce. Používá se s ConvertFrom-SecureString
a Read-Host
. Zabezpečený řetězec vytvořený rutinou lze použít s rutinami nebo funkcemi, které vyžadují parametr typu SecureString. Zabezpečený řetězec lze pomocí rutiny převést zpět na šifrovaný standardní řetězec ConvertFrom-SecureString
. To umožňuje uložení do souboru pro pozdější použití.
Pokud byl standardní řetězec převeden pomocí zadaného klíče zašifrován ConvertFrom-SecureString
, musí být stejný klíč zadán jako hodnota parametru Key nebo SecureKey rutiny ConvertTo-SecureString
.
Příklady
Příklad 1: Převedení zabezpečeného řetězce na šifrovaný řetězec
Tento příklad ukazuje, jak vytvořit zabezpečený řetězec ze vstupu uživatele, převést zabezpečený řetězec na šifrovaný standardní řetězec a pak převést šifrovaný standardní řetězec zpět na zabezpečený řetězec.
PS C:\> $Secure = Read-Host -AsSecureString
PS C:\> $Secure
System.Security.SecureString
PS C:\> $Encrypted = ConvertFrom-SecureString -SecureString $Secure
PS C:\> $Encrypted
01000000d08c9ddf0115d1118c7a00c04fc297eb010000001a114d45b8dd3f4aa11ad7c0abdae98000000000
02000000000003660000a8000000100000005df63cea84bfb7d70bd6842e7efa79820000000004800000a000
000010000000f10cd0f4a99a8d5814d94e0687d7430b100000008bf11f1960158405b2779613e9352c6d1400
0000e6b7bf46a9d485ff211b9b2a2df3bd6eb67aae41
PS C:\> $Secure2 = ConvertTo-SecureString -String $Encrypted
PS C:\> $Secure2
System.Security.SecureString
První příkaz pomocí parametru Read-Host
AsSecureString rutiny vytvoří zabezpečený řetězec. Po zadání příkazu se všechny znaky, které zadáte, převedou na zabezpečený řetězec a uloží se do $Secure
proměnné.
Druhý příkaz zobrazí obsah $Secure
proměnné. $Secure
Protože proměnná obsahuje zabezpečený řetězec, PowerShell zobrazí pouze typ System.Security.SecureString.
Třetí příkaz pomocí rutiny ConvertFrom-SecureString
převede zabezpečený řetězec v $Secure
proměnné na šifrovaný standardní řetězec. Uloží výsledek do $Encrypted
proměnné.
Čtvrtý příkaz zobrazí šifrovaný řetězec v hodnotě $Encrypted
proměnné.
Pátý příkaz pomocí rutiny ConvertTo-SecureString
převede šifrovaný standardní řetězec v $Encrypted
proměnné zpět na zabezpečený řetězec. Uloží výsledek do $Secure2
proměnné.
Šestý příkaz zobrazí hodnotu $Secure2
proměnné. Typ SecureString označuje, že příkaz byl úspěšný.
Příklad 2: Vytvoření zabezpečeného řetězce z šifrovaného řetězce v souboru
Tento příklad ukazuje, jak vytvořit zabezpečený řetězec z šifrovaného standardního řetězce uloženého v souboru.
$Secure = Read-Host -AsSecureString
$Encrypted = ConvertFrom-SecureString -SecureString $Secure -Key (1..16)
$Encrypted | Set-Content Encrypted.txt
$Secure2 = Get-Content Encrypted.txt | ConvertTo-SecureString -Key (1..16)
První příkaz pomocí parametru Read-Host
AsSecureString rutiny vytvoří zabezpečený řetězec. Po zadání příkazu se všechny znaky, které zadáte, převedou na zabezpečený řetězec a uloží se do $Secure
proměnné.
Druhý příkaz pomocí rutiny ConvertFrom-SecureString
převede zabezpečený řetězec v $Secure
proměnné na šifrovaný standardní řetězec pomocí zadaného klíče. Obsah se uloží do $Encrypted
proměnné.
Třetí příkaz pomocí operátoru kanálu (|
) odešle hodnotu $Encrypted
proměnné do Set-Content
rutiny, která uloží hodnotu do souboru Encrypted.txt.
Čtvrtý příkaz používá rutinu Get-Content
k získání šifrovaného standardního řetězce v souboru Encrypted.txt. Příkaz pomocí operátoru kanálu odešle šifrovaný řetězec do ConvertTo-SecureString
rutiny, který ho převede na zabezpečený řetězec pomocí zadaného klíče.
Výsledky se uloží do $Secure2
proměnné.
Příklad 3: Převedení řetězce prostého textu na zabezpečený řetězec
Tento příkaz převede řetězec P@ssW0rD!
prostého textu na zabezpečený řetězec a uloží výsledek do $Secure_String_Pwd
proměnné.
Počínaje PowerShellem 7 není při použití parametru AsPlainText vyžadován parametr Force. Zahrnutím parametru Force ale zajistíte, že příkaz bude kompatibilní s dřívějšími verzemi.
$Secure_String_Pwd = ConvertTo-SecureString "P@ssW0rD!" -AsPlainText -Force
Upozornění
Měli byste se vyhnout použití řetězců ve formátu prostého textu ve skriptu nebo z příkazového řádku. Prostý text se může zobrazit v protokolech událostí a protokolech historie příkazů.
Parametry
-AsPlainText
Určuje řetězec ve formátu prostého textu, který se má převést na zabezpečený řetězec. Rutiny zabezpečených řetězců pomáhají chránit důvěrný text. Text je zašifrovaný pro ochranu osobních údajů a po použití se odstraní z paměti počítače. Pokud tento parametr použijete k zadání prostého textu jako vstupu, systém nemůže tento vstup tímto způsobem chránit.
Type: | SwitchParameter |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Počínaje PowerShellem 7 se parametr Force už při použití parametru AsPlainText nevyžaduje. I když se parametr nepoužívá, neodebral se kvůli zajištění kompatibility se staršími verzemi PowerShellu.
Type: | SwitchParameter |
Position: | 2 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Key
Určuje šifrovací klíč použitý k převodu původního zabezpečeného řetězce na šifrovaný standardní řetězec. Platné délky klíčů jsou 16, 24 a 32 bajtů.
Type: | Byte[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SecureKey
Určuje šifrovací klíč použitý k převodu původního zabezpečeného řetězce na šifrovaný standardní řetězec. Klíč musí být zadaný ve formátu zabezpečeného řetězce. Zabezpečený řetězec se převede na bajtové pole, které se použije jako klíč. Platné délky zabezpečených klíčů jsou 8, 12 a 16 bodů kódu.
Type: | SecureString |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-String
Určuje řetězec, který se má převést na zabezpečený řetězec.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Vstupy
Do této rutiny můžete směrovat standardní šifrovaný řetězec.
Výstupy
Tato rutina vrátí vytvořený objekt SecureString .
Poznámky
Některé znaky, například emotikon, odpovídají několika bodům kódu v řetězci, který je obsahuje. Nepoužívejte tyto znaky, protože můžou způsobovat problémy a nedorozumění při použití v hesle.