Share via


ConvertFrom-SecureString

Konverterar en säker sträng till en krypterad standardsträng.

Syntax

ConvertFrom-SecureString
                [-SecureString] <SecureString>
                [[-SecureKey] <SecureString>]
                [<CommonParameters>]
ConvertFrom-SecureString
                [-SecureString] <SecureString>
                [-AsPlainText]
                [<CommonParameters>]
ConvertFrom-SecureString
                [-SecureString] <SecureString>
                [-Key <Byte[]>]
                [<CommonParameters>]

Description

Cmdleten ConvertFrom-SecureString konverterar en säker sträng (System.Security.SecureString) till en krypterad standardsträng (System.String). Till skillnad från en säker sträng kan en krypterad standardsträng sparas i en fil för senare användning. Den krypterade standardsträngen kan konverteras tillbaka till sitt säkra strängformat med hjälp av cmdleten ConvertTo-SecureString .

Om en krypteringsnyckel anges med hjälp av nyckel- eller SecureKey-parametrarna används krypteringsalgoritmen Advanced Encryption Standard (AES). Den angivna nyckeln måste ha en längd på 128, 192 eller 256 bitar eftersom det är de nyckellängder som stöds av AES-krypteringsalgoritmen. Om ingen nyckel anges används Windows Data Protection API (DPAPI) för att kryptera standardsträngrepresentationen.

Kommentar

Observera att innehållet i en SecureString per DotNet inte krypteras på andra system än Windows.

Exempel

Exempel 1: Skapa en säker sträng

$SecureString = Read-Host -AsSecureString

Det här kommandot skapar en säker sträng från tecken som du skriver i kommandotolken. När du har angett kommandot skriver du strängen som du vill lagra som en säker sträng. En asterisk (*) visas för att representera varje tecken som du skriver.

Exempel 2: Konvertera en säker sträng till en krypterad standardsträng

$StandardString = ConvertFrom-SecureString $SecureString

Det här kommandot konverterar den säkra strängen i variabeln $SecureString till en krypterad standardsträng. Den resulterande krypterade standardsträngen lagras i variabeln $StandardString .

Exempel 3: Konvertera en säker sträng till en krypterad standardsträng med en 192-bitarsnyckel

$Key = (3,4,2,3,56,34,254,222,1,1,2,23,42,54,33,233,1,34,2,7,6,5,35,43)
$StandardString = ConvertFrom-SecureString $SecureString -Key $Key

Dessa kommandon använder AES-algoritmen (Advanced Encryption Standard) för att konvertera den säkra sträng som lagras i variabeln $SecureString till en krypterad standardsträng med en 192-bitarsnyckel. Den resulterande krypterade standardsträngen lagras i variabeln $StandardString .

Det första kommandot lagrar en nyckel i variabeln $Key . Nyckeln är en matris med 24 decimaltal, som var och en måste vara mindre än 256 för att få plats inom en enda osignerad byte.

Eftersom varje decimaltal representerar en enskild byte (8 bitar) har nyckeln 24 siffror för totalt 192 bitar (8 x 24). Det här är en giltig nyckellängd för AES-algoritmen.

Det andra kommandot använder nyckeln i variabeln $Key för att konvertera den säkra strängen till en krypterad standardsträng.

Exempel 4: Konvertera en säker sträng direkt till en klartextsträng

$secureString = ConvertTo-SecureString -String 'Example' -AsPlainText
$secureString # 'System.Security.SecureString'
ConvertFrom-SecureString -SecureString $secureString -AsPlainText # 'Example'

Parametrar

-AsPlainText

När den är inställd ConvertFrom-SecureString konverteras säkra strängar till den dekrypterade klartextsträngen som utdata.

Den här parametern lades till i PowerShell 7.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Key

Anger krypteringsnyckeln som en bytematris.

Type:Byte[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SecureKey

Anger krypteringsnyckeln som en säker sträng. Värdet för säker sträng konverteras till en bytematris innan det används som nyckel.

Type:SecureString
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SecureString

Anger den säkra sträng som ska konverteras till en krypterad standardsträng.

Type:SecureString
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

Indata

SecureString

Du kan skicka ett SecureString-objekt till den här cmdleten.

Utdata

String

Den här cmdleten returnerar den skapade oformaterade textsträngen.

Kommentarer

  • Om du vill skapa en säker sträng från tecken som skrivs i kommandotolken använder du parametern AsSecureString för cmdleten Read-Host .
  • När du använder nyckel- eller SecureKey-parametrarna för att ange en nyckel måste nyckellängden vara korrekt. Till exempel kan en nyckel på 128 bitar anges som en bytematris med 16 decimaltal. På samma sätt motsvarar 192-bitars- och 256-bitarsnycklar bytematriser med 24 respektive 32 decimaltal.
  • Vissa tecken, till exempel uttryckssymboler, motsvarar flera kodpunkter i strängen som innehåller dem. Undvik att använda dessa tecken eftersom de kan orsaka problem och missförstånd när de används i ett lösenord.