Delen via


ConvertTo-SecureString

Converteert tekst zonder opmaak of versleutelde tekenreeksen naar beveiligde tekenreeksen.

Syntax

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 ConvertFrom-SecureString cmdlet. Hierdoor kan het worden opgeslagen in een bestand voor later gebruik.

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

Notitie

Houd er rekening mee dat de inhoud van een SecureString per DotNet niet is versleuteld op niet-Windows-systemen.

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 $Secure variabele weergegeven. Omdat de $Secure variabele een beveiligde tekenreeks bevat, geeft PowerShell alleen het type System.Security.SecureString weer.

De derde opdracht gebruikt 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 $Secure2 variabele 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 gebruikt de cmdlet om de ConvertFrom-SecureString beveiligde tekenreeks in de $Secure variabele te converteren naar een versleutelde standaardtekenreeks met behulp van de opgegeven sleutel. De inhoud wordt opgeslagen in de $Encrypted variabele.

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

De vierde opdracht gebruikt 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 naar de ConvertTo-SecureString cmdlet te verzenden, die deze converteert naar een beveiligde tekenreeks met behulp van de opgegeven sleutel. De resultaten worden opgeslagen in de $Secure2 variabele.

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

Met deze opdracht wordt de tekenreeks zonder opmaak geconverteerd naar een beveiligde tekenreeks P@ssW0rD! en wordt het resultaat opgeslagen in de $Secure_String_Pwd variabele.

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

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

Let op

Vermijd het gebruik van tekenreeksen zonder opmaak in een script of vanaf de opdrachtregel. 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
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-String

Hiermee geeft u de tekenreeks die moet worden geconverteerd naar een beveiligde tekenreeks.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.