ConvertFrom-SecureString

Konvertiert eine sichere Zeichenfolge in eine verschlüsselte Standardzeichenfolge.

Syntax

Secure (Standard)

ConvertFrom-SecureString
    [-SecureString] <SecureString>
    [[-SecureKey] <SecureString>]
    [<CommonParameters>]

AsPlainText

ConvertFrom-SecureString
    [-SecureString] <SecureString>
    [-AsPlainText]
    [<CommonParameters>]

Open

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

Beschreibung

Das ConvertFrom-SecureString Cmdlet konvertiert eine sichere Zeichenfolge (System.Security.SecureString) in eine verschlüsselte Standardzeichenfolge (System.String). Im Gegensatz zu einer sicheren Zeichenfolge kann eine verschlüsselte Standardzeichenfolge zur späteren Verwendung in einer Datei gespeichert werden. Die verschlüsselte Standardzeichenfolge kann mithilfe des Cmdlets wieder in das ConvertTo-SecureString sichere Zeichenfolgenformat konvertiert werden.

Wenn ein Verschlüsselungsschlüssel mithilfe der Schlüssel - oder SecureKey-Parameter angegeben wird, wird der AES-Verschlüsselungsalgorithmus (Advanced Encryption Standard) verwendet. Der angegebene Schlüssel muss eine Länge von 128, 192 oder 256 Bit aufweisen, da dies die Schlüssellängen sind, die vom AES-Verschlüsselungsalgorithmus unterstützt werden. Wenn kein Schlüssel angegeben wird, wird die Windows Data Protection API (DPAPI) verwendet, um die Standardzeichenfolgendarstellung zu verschlüsseln.

Note

Der Inhalt einer SecureString-Datei wird nicht auf nicht Windows Systemen verschlüsselt. Weitere Informationen zum Schutz von SecureString finden Sie unter "Wie sicher ist > SecureString?"

Beispiele

Beispiel 1: Erstellen einer sicheren Zeichenfolge

$SecureString = Read-Host -AsSecureString

Mit diesem Befehl wird eine sichere Zeichenfolge aus Zeichen erstellt, die Sie an der Eingabeaufforderung eingeben. Geben Sie nach dem Eingeben des Befehls die Zeichenfolge ein, die Sie als sichere Zeichenfolge speichern möchten. Ein Sternchen (*) wird angezeigt, um jedes eingegebene Zeichen darzustellen.

Beispiel 2: Konvertieren einer sicheren Zeichenfolge in eine verschlüsselte Standardzeichenfolge

$StandardString = ConvertFrom-SecureString $SecureString

Mit diesem Befehl wird die sichere Zeichenfolge in der $SecureString Variablen in eine verschlüsselte Standardzeichenfolge konvertiert. Die resultierende verschlüsselte Standardzeichenfolge wird in der $StandardString Variablen gespeichert.

Beispiel 3: Konvertieren einer sicheren Zeichenfolge in eine verschlüsselte Standardzeichenfolge mit einem 192-Bit-Schlüssel

$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

Diese Befehle verwenden den AES-Algorithmus (Advanced Encryption Standard), um die in der $SecureString Variablen gespeicherte sichere Zeichenfolge in eine verschlüsselte Standardzeichenfolge mit einem 192-Bit-Schlüssel zu konvertieren. Die resultierende verschlüsselte Standardzeichenfolge wird in der $StandardString Variablen gespeichert.

Der erste Befehl speichert einen Schlüssel in der $Key Variablen. Der Schlüssel ist ein Array von 24 Dezimalzahlen, von denen jeder kleiner als 256 sein muss, damit er in ein einzelnes nicht signiertes Byte passt.

Da jede Dezimalzahl ein einzelnes Byte (8 Bit) darstellt, weist der Schlüssel 24 Ziffern für insgesamt 192 Bits (8 x 24) auf. Dies ist eine gültige Schlüssellänge für den AES-Algorithmus.

Der zweite Befehl verwendet den Schlüssel in der $Key Variablen, um die sichere Zeichenfolge in eine verschlüsselte Standardzeichenfolge zu konvertieren.

Beispiel 4: Direktes Konvertieren einer sicheren Zeichenfolge in eine Nur-Text-Zeichenfolge

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

Parameter

-AsPlainText

Wenn diese Einstellung festgelegt ist, ConvertFrom-SecureString werden sichere Zeichenfolgen als Ausgabe in die entschlüsselte Nur-Text-Zeichenfolge konvertiert.

Dieser Parameter wurde in PowerShell 7.0 hinzugefügt.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

AsPlainText
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Key

Gibt den Verschlüsselungsschlüssel als Bytearray an. Wenn der Schlüssel nicht mit dem Schlüssel übereinstimmt, der zum Verschlüsseln der ursprünglichen sicheren Zeichenfolge verwendet wird, ist der zurückgegebene Wert ungültig. Wenn die verschlüsselte Zeichenfolge ohne Schlüssel erstellt wurde, sollten Sie keinen Schlüssel verwenden, um sie wieder in eine sichere Zeichenfolge zu konvertieren.

Parametereigenschaften

Typ:

Byte[]

Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

Open
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-SecureKey

Gibt den Verschlüsselungsschlüssel als sichere Zeichenfolge an. Der Wert der sicheren Zeichenfolge wird vor der Verwendung als Schlüssel in ein Bytearray konvertiert. Wenn der Schlüssel nicht mit dem Schlüssel übereinstimmt, der zum Verschlüsseln der ursprünglichen sicheren Zeichenfolge verwendet wird, ist der zurückgegebene Wert ungültig. Wenn die verschlüsselte Zeichenfolge ohne Schlüssel erstellt wurde, sollten Sie keinen Schlüssel verwenden, um sie wieder in eine sichere Zeichenfolge zu konvertieren.

Parametereigenschaften

Typ:SecureString
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

Secure
Position:1
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-SecureString

Gibt die sichere Zeichenfolge an, die in eine verschlüsselte Standardzeichenfolge konvertiert werden soll.

Parametereigenschaften

Typ:SecureString
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:0
Obligatorisch.:True
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

CommonParameters

Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.

Eingaben

SecureString

Sie können ein SecureString-Objekt an dieses Cmdlet weiterleiten.

Ausgaben

String

Dieses Cmdlet gibt die erstellte Nur-Text-Zeichenfolge zurück.

Hinweise

  • Verwenden Sie zum Erstellen einer sicheren Zeichenfolge aus Zeichen, die an der Eingabeaufforderung eingegeben werden, den Parameter AsSecureString des Read-Host Cmdlets.
  • Wenn Sie die Schlüssel - oder SecureKey-Parameter verwenden, um einen Schlüssel anzugeben, muss die Schlüssellänge korrekt sein. Beispielsweise kann ein Schlüssel von 128 Bit als Bytearray mit 16 Dezimalzahlen angegeben werden. Entsprechend entsprechen 192-Bit- und 256-Bit-Tasten Bytearrays von 24 bzw. 32 Dezimalzahlen.
  • Einige Zeichen, z. B. Emoticons, entsprechen mehreren Codepunkten in der Zeichenfolge, die sie enthält. Vermeiden Sie die Verwendung dieser Zeichen, da sie probleme und Missverständnisse verursachen können, wenn sie in einem Kennwort verwendet werden.