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.