Delen via


ConvertTo-SecureString

Converteert tekst zonder opmaak of versleutelde tekenreeksen naar beveiligde tekenreeksen.

Syntaxis

ConvertTo-SecureString
              [-String] <String>
              [[-SecureKey] <SecureString>]
              [<CommonParameters>]
ConvertTo-SecureString
              [-String] <String>
              [-AsPlainText]
              [-Force]
              [<CommonParameters>]
ConvertTo-SecureString
              [-String] <String>
              [-Key <Byte[]>]
              [<CommonParameters>]

Description

De ConvertTo-SecureString-cmdlet converteert versleutelde standaardtekenreeksen naar beveiligde tekenreeksen. U kunt ook tekst zonder opmaak converteren naar beveiligde tekenreeksen. Het wordt gebruikt met ConvertFrom-SecureString en Read-Host. De beveiligde tekenreeks die door de cmdlet is gemaakt, kan worden gebruikt met cmdlets of functies waarvoor een parameter van het type SecureString-is vereist. De beveiligde tekenreeks kan worden geconverteerd naar een versleutelde, standaardtekenreeks met behulp van de cmdlet ConvertFrom-SecureString. Hierdoor kan het worden opgeslagen in een bestand voor later gebruik.

Als de standaardtekenreeks die wordt geconverteerd, is versleuteld met ConvertFrom-SecureString met behulp van een opgegeven sleutel, moet dezelfde sleutel worden opgegeven als de waarde van de Sleutel of SecureKey parameter van de ConvertTo-SecureString-cmdlet.

Notitie

Zie voor meer informatie over SecureString gegevensbeveiliging Hoe veilig is SecureString?.

Voorbeelden

Voorbeeld 1: Een beveiligde tekenreeks converteren naar een versleutelde tekenreeks

In dit voorbeeld ziet u hoe u een beveiligde tekenreeks maakt op basis van gebruikersinvoer, de beveiligde tekenreeks converteert naar een versleutelde standaardtekenreeks en vervolgens de versleutelde standaardtekenreeks weer converteert naar een beveiligde tekenreeks.

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

De eerste opdracht maakt gebruik van de parameter AsSecureString van de Read-Host-cmdlet om een beveiligde tekenreeks te maken. Nadat u de opdracht hebt ingevoerd, worden alle tekens die u typt geconverteerd naar een beveiligde tekenreeks en vervolgens opgeslagen in de $Secure variabele.

Met de tweede opdracht wordt de inhoud van de variabele $Secure weergegeven. Omdat de variabele $Secure een beveiligde tekenreeks bevat, wordt in PowerShell alleen het type System.Security.SecureString weergegeven.

De derde opdracht maakt gebruik van de ConvertFrom-SecureString cmdlet om de beveiligde tekenreeks in de $Secure variabele te converteren naar een versleutelde standaardtekenreeks. Het resultaat wordt opgeslagen in de $Encrypted variabele.

Met de vierde opdracht wordt de versleutelde tekenreeks weergegeven in de waarde van de $Encrypted variabele.

De vijfde opdracht gebruikt de ConvertTo-SecureString cmdlet om de versleutelde standaardtekenreeks in de $Encrypted variabele weer te converteren naar een beveiligde tekenreeks. Het resultaat wordt opgeslagen in de $Secure2 variabele. Met de zesde opdracht wordt de waarde van de variabele $Secure2 weergegeven. Het type SecureString geeft aan dat de opdracht is geslaagd.

Voorbeeld 2: Een beveiligde tekenreeks maken op basis van een versleutelde tekenreeks in een bestand

In dit voorbeeld ziet u hoe u een beveiligde tekenreeks maakt op basis van een versleutelde standaardtekenreeks die is opgeslagen in een bestand.

$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)

De eerste opdracht maakt gebruik van de parameter AsSecureString van de Read-Host-cmdlet om een beveiligde tekenreeks te maken. Nadat u de opdracht hebt ingevoerd, worden alle tekens die u typt geconverteerd naar een beveiligde tekenreeks en vervolgens opgeslagen in de $Secure variabele.

De tweede opdracht maakt gebruik van de ConvertFrom-SecureString cmdlet om de beveiligde tekenreeks in de $Secure variabele te converteren naar een versleutelde standaardtekenreeks met behulp van de opgegeven sleutel. De inhoud wordt opgeslagen in de variabele $Encrypted.

De derde opdracht maakt gebruik van een pijplijnoperator (|) om de waarde van de $Encrypted variabele naar de Set-Content-cmdlet te verzenden, waarmee de waarde in het Encrypted.txt-bestand wordt opgeslagen.

De vierde opdracht maakt gebruik van de Get-Content cmdlet om de versleutelde standaardtekenreeks op te halen in het Encrypted.txt bestand. De opdracht maakt gebruik van een pijplijnoperator om de versleutelde tekenreeks te verzenden naar de ConvertTo-SecureString-cmdlet, die deze converteert naar een beveiligde tekenreeks met behulp van de opgegeven sleutel. De resultaten worden opgeslagen in de variabele $Secure2.

Voorbeeld 3: Een tekenreeks zonder opmaak converteren naar een beveiligde tekenreeks

Met dit commando wordt de platte tekst P@ssW0rD! geconverteerd naar een beveiligde tekenreeks en wordt het resultaat in de variabele $Secure_String_Pwd opgeslagen.

Vanaf PowerShell 7 is de parameter Force niet vereist wanneer u de parameter AsPlainText gebruikt. Als u echter de parameter Force gebruikt, zorgt u ervoor dat de instructie compatibel is met eerdere versies.

$Secure_String_Pwd = ConvertTo-SecureString "P@ssW0rD!" -AsPlainText -Force

Voorzichtigheid

Vermijd het gebruik van platte tekst in scripts of vanaf de commandoregel. De tekst zonder opmaak kan worden weergegeven in gebeurtenislogboeken en opdrachtgeschiedenislogboeken.

Parameters

-AsPlainText

Hiermee geeft u een tekenreeks zonder opmaak op die moet worden geconverteerd naar een beveiligde tekenreeks. De cmdlets voor beveiligde tekenreeksen helpen vertrouwelijke tekst te beveiligen. De tekst is versleuteld voor privacy en wordt verwijderd uit het computergeheugen nadat deze is gebruikt. Als u deze parameter gebruikt om tekst zonder opmaak als invoer op te geven, kan het systeem deze invoer niet op deze manier beveiligen.

Type:SwitchParameter
Position:1
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Force

Vanaf PowerShell 7 is de parameter Force niet meer vereist wanneer u de parameter AsPlainText gebruikt. Hoewel de parameter niet wordt gebruikt, is deze niet verwijderd om compatibiliteit met eerdere versies van PowerShell te bieden.

Type:SwitchParameter
Position:2
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Key

Hiermee geeft u de versleutelingssleutel op die wordt gebruikt om de oorspronkelijke beveiligde tekenreeks te converteren naar de versleutelde standaardtekenreeks. Geldige sleutellengten zijn 16, 24 en 32 bytes.

Type:Byte[]
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-SecureKey

Hiermee geeft u de versleutelingssleutel op die wordt gebruikt om de oorspronkelijke beveiligde tekenreeks te converteren naar de versleutelde standaardtekenreeks. De sleutel moet worden opgegeven in de indeling van een beveiligde tekenreeks. De beveiligde tekenreeks wordt geconverteerd naar een bytematrix die als sleutel moet worden gebruikt. Geldige veilige sleutellengten zijn 8, 12 en 16 codepunten.

Type:SecureString
Position:1
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-String

Geeft de tekenreeks op die moet worden geconverteerd naar een beveiligde tekenreeks.

Type:String
Position:0
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

Invoerwaarden

String

U kunt een standaard versleutelde tekenreeks doorsluisen naar deze cmdlet.

Uitvoerwaarden

SecureString

Met deze cmdlet wordt het gemaakte SecureString--object geretourneerd.

Notities

Sommige tekens, zoals emoticons, komen overeen met verschillende codepunten in de tekenreeks die ze bevat. Vermijd het gebruik van deze tekens omdat ze problemen en misverstanden kunnen veroorzaken bij gebruik in een wachtwoord.