ConvertTo-SecureString
Převede prostý text nebo šifrované řetězce na zabezpečené řetězce.
Syntax
Secure (Výchozí)
ConvertTo-SecureString
[-String] <String>
[[-SecureKey] <SecureString>]
[<CommonParameters>]
PlainText
ConvertTo-SecureString
[-String] <String>
[-AsPlainText]
[-Force]
[<CommonParameters>]
Open
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 převést zpět na šifrovaný standardní řetězec pomocí rutiny ConvertFrom-SecureString. To umožňuje uložení do souboru pro pozdější použití.
Pokud byl standardní řetězec pomocí ConvertFrom-SecureString zašifrován se zadaným klíčem, stejný klíč musí být zadán jako hodnota parametru Key nebo SecureKey rutiny ConvertTo-SecureString. Pokud při vytváření zabezpečeného řetězce nezadáte klíč, řetězec se zašifruje rozhraním WINDOWS DATA Protection API (DPAPI).
Poznámka:
Obsah řetězce SecureString není šifrován v systémech, které nejsou Windows. Další informace o ochraně dat SecureString najdete v tématu Jak zabezpečený je 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 použije k vytvoření zabezpečeného řetězce parametr AsSecureString rutiny Read-Host. Po zadání příkazu se všechny znaky, které zadáte, převedou na zabezpečený řetězec a uloží se do proměnné $Secure.
Druhý příkaz zobrazí obsah proměnné $Secure. Vzhledem k tomu, že proměnná $Secure obsahuje zabezpečený řetězec, PowerShell zobrazí pouze typ System.Security.SecureString.
Třetí příkaz používá rutinu ConvertFrom-SecureString k převodu zabezpečeného řetězce v proměnné $Secure na šifrovaný standardní řetězec. Uloží výsledek do proměnné $Encrypted.
Čtvrtý příkaz zobrazí šifrovaný řetězec v hodnotě proměnné $Encrypted.
Pátý příkaz používá rutinu ConvertTo-SecureString k převodu šifrovaného standardního řetězce v proměnné $Encrypted zpět na zabezpečený řetězec. Uloží výsledek do proměnné $Secure2.
Šestý příkaz zobrazí hodnotu proměnné $Secure2. 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 použije k vytvoření zabezpečeného řetězce parametr AsSecureString rutiny Read-Host. Po zadání příkazu se všechny znaky, které zadáte, převedou na zabezpečený řetězec a uloží se do proměnné $Secure.
Druhý příkaz pomocí rutiny ConvertFrom-SecureString převede zabezpečený řetězec v proměnné $Secure na šifrovaný standardní řetězec pomocí zadaného klíče. Obsah se uloží do proměnné $Encrypted.
Třetí příkaz pomocí operátoru kanálu (|) odešle hodnotu proměnné $Encrypted do rutiny Set-Content, 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 využívá operátor kanálu k přenosu šifrovaného řetězce do cmdletu ConvertTo-SecureString, který jej převede na bezpečnostní řetězec pomocí zadaného klíče.
Výsledky se uloží do proměnné $Secure2.
Příklad 3: Převedení řetězce prostého textu na zabezpečený řetězec
Tento příkaz převede řetězec prostého textu P@ssW0rD! na zabezpečený řetězec a uloží výsledek do proměnné $Secure_String_Pwd.
Počínaje PowerShellem 7 není při použití parametru AsPlainText nutné použít 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. Příkazy pro zabezpečené řetězce 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.
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
PlainText
| Position: | 1 |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-Force
Počínaje PowerShellem 7 už není při použití parametru AsPlainText vyžadován parametr Force. I když se parametr nepoužívá, neodebral se kvůli zajištění kompatibility se staršími verzemi PowerShellu.
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
PlainText
| Position: | 2 |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | 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ů. Pokud klíč neodpovídá klíči použitému k šifrování původního zabezpečeného řetězce, vrácená hodnota je neplatná. Pokud byl šifrovaný řetězec vytvořen bez klíče, neměli byste ho použít k jeho převodu zpět na zabezpečený řetězec.
Vlastnosti parametru
| Typ: | Byte[] |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
Open
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | 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. Platné délky zabezpečených klíčů jsou 8, 12 a 16 bodů kódu. Pokud klíč neodpovídá klíči použitému k šifrování původního zabezpečeného řetězce, vrácená hodnota je neplatná. Pokud byl šifrovaný řetězec vytvořen bez klíče, neměli byste ho použít k jeho převodu zpět na zabezpečený řetězec.
Vlastnosti parametru
| Typ: | SecureString |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
Secure
| Position: | 1 |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-String
Určuje řetězec, který se má převést na zabezpečený řetězec.
Vlastnosti parametru
| Typ: | String |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | 0 |
| Povinné: | True |
| Hodnota z kanálu: | True |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
CommonParameters
Tato rutina podporuje běžné parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction a -WarningVariable. Další informace najdete v about_CommonParameters.
Vstupy
String
Do tohoto cmdletu můžete směrovat standardní šifrovaný řetězec.
Výstupy
SecureString
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.