ConvertTo-SecureString

Convertit le texte brut ou les chaînes chiffrées en chaînes sécurisées.

Syntax

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

Description

L’applet ConvertTo-SecureString de commande convertit les chaînes standard chiffrées en chaînes sécurisées. Cette commande peut également convertir du texte brut en chaînes sécurisées. Il est utilisé avec ConvertFrom-SecureString et Read-Host. La chaîne sécurisée créée par l’applet de commande peut être utilisée avec des applets de commande ou des fonctions qui nécessitent un paramètre de type SecureString. La chaîne sécurisée peut être convertie en chaîne chiffrée et standard à l’aide de l’applet de ConvertFrom-SecureString commande. Cela permet de la stocker dans un fichier pour une utilisation ultérieure.

Si la chaîne standard en cours de conversion a été chiffrée à ConvertFrom-SecureString l’aide d’une clé spécifiée, cette même clé doit être fournie comme valeur du paramètre Key ou SecureKey de l’applet ConvertTo-SecureString de commande.

Remarque

Notez que par DotNet, le contenu d’une SecureString n’est pas chiffré sur les systèmes non Windows.

Exemples

Exemple 1 : Convertir une chaîne sécurisée en chaîne chiffrée

Cet exemple montre comment créer une chaîne sécurisée à partir de l'entrée utilisateur, convertir la chaîne sécurisée en chaîne standard chiffrée, puis convertir la chaîne cryptée standard en chaîne sécurisée.

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

La première commande utilise le paramètre AsSecureString de l’applet Read-Host de commande pour créer une chaîne sécurisée. Après avoir entré la commande, tous les caractères que vous tapez sont convertis en chaîne sécurisée, puis enregistrés dans la $Secure variable.

La deuxième commande affiche le contenu de la $Secure variable. Étant donné que la $Secure variable contient une chaîne sécurisée, PowerShell affiche uniquement le type System.Security.SecureString .

La troisième commande utilise l’applet ConvertFrom-SecureString de commande pour convertir la chaîne sécurisée dans la $Secure variable en chaîne standard chiffrée. Elle enregistre le résultat dans la $Encrypted variable.

La quatrième commande affiche la chaîne chiffrée dans la valeur de la $Encrypted variable.

La cinquième commande utilise l’applet ConvertTo-SecureString de commande pour convertir la chaîne standard chiffrée dans la $Encrypted variable en chaîne sécurisée. Elle enregistre le résultat dans la $Secure2 variable. La sixième commande affiche la valeur de la $Secure2 variable. Le type SecureString indique que la commande a réussi.

Exemple 2 : Créer une chaîne sécurisée à partir d’une chaîne chiffrée dans un fichier

Cet exemple montre comment créer une chaîne sécurisée à partir d'une chaîne chiffrée standard qui est enregistrée dans un fichier.

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

La première commande utilise le paramètre AsSecureString de l’applet Read-Host de commande pour créer une chaîne sécurisée. Après avoir entré la commande, tous les caractères que vous tapez sont convertis en chaîne sécurisée, puis enregistrés dans la $Secure variable.

La deuxième commande utilise l’applet ConvertFrom-SecureString de commande pour convertir la chaîne sécurisée dans la $Secure variable en chaîne standard chiffrée à l’aide de la clé spécifiée. Le contenu est enregistré dans la $Encrypted variable.

La troisième commande utilise un opérateur de pipeline (|) pour envoyer la valeur de la $Encrypted variable à l’applet Set-Content de commande, qui enregistre la valeur dans le fichier Encrypted.txt.

La quatrième commande utilise l’applet Get-Content de commande pour obtenir la chaîne standard chiffrée dans le fichier Encrypted.txt. La commande utilise un opérateur de pipeline pour envoyer la chaîne chiffrée à l’applet ConvertTo-SecureString de commande, qui la convertit en chaîne sécurisée à l’aide de la clé spécifiée. Les résultats sont enregistrés dans la $Secure2 variable.

Exemple 3 : Convertir une chaîne de texte brut en chaîne sécurisée

Cette commande convertit la chaîne P@ssW0rD! de texte brut en chaîne sécurisée et stocke le résultat dans la $Secure_String_Pwd variable.

À compter de PowerShell 7, le paramètre Force n’est pas obligatoire lors de l’utilisation du paramètre AsPlainText . Toutefois, l’inclusion du paramètre Force garantit que l’instruction est compatible avec les versions antérieures.

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

Attention

Vous devriez éviter d’utiliser des chaînes de texte brut dans le script ou à partir de la ligne de commande. Le texte brut peut apparaître dans les journaux des événements et les journaux d’historique des commandes.

Paramètres

-AsPlainText

Spécifie une chaîne de texte brut à convertir en chaîne sécurisée. Les applets de commande de chaîne sécurisée protègent du texte confidentiel. Le texte est chiffré pour rester confidentiel et il est supprimé de la mémoire de l'ordinateur après son utilisation. Si vous utilisez ce paramètre pour fournir du texte brut en entrée, le système ne peut pas protéger cette entrée de cette manière.

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

-Force

À compter de PowerShell 7, le paramètre Force n’est plus nécessaire lors de l’utilisation du paramètre AsPlainText . Bien que le paramètre ne soit pas utilisé, il n’a pas été supprimé pour assurer la compatibilité avec les versions antérieures de PowerShell.

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

-Key

Spécifie la clé de chiffrement utilisée pour convertir la chaîne sécurisée d’origine en chaîne standard chiffrée. Les longueurs de clé valides sont de 16, 24 et 32 octets.

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

-SecureKey

Spécifie la clé de chiffrement utilisée pour convertir la chaîne sécurisée d’origine en chaîne standard chiffrée. La clé doit être fournie au format d'une chaîne sécurisée. La chaîne sécurisée est convertie en tableau d’octets à utiliser comme clé. Les longueurs de clés sécurisées valides sont de 8, 12 et 16 points de code.

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

-String

Spécifie la chaîne à convertir en chaîne sécurisée.

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

Entrées

String

Vous pouvez diriger une chaîne chiffrée standard vers cette applet de commande.

Sorties

SecureString

Cette applet de commande retourne l’objet SecureString créé.

Notes

Certains caractères, tels que les émoticônes, correspondent à plusieurs points de code dans la chaîne qui les contient. Évitez d’utiliser ces caractères, car ils peuvent provoquer des problèmes et des malentendus lorsqu’ils sont utilisés dans un mot de passe.