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 .

Poznámka:

Všimněte si, že obsah řetězce SecureString není pro systémy mimo Windows šifrovaný.

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

String

Do této rutiny 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.