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
Vous pouvez diriger une chaîne chiffrée standard vers cette applet de commande.
Sorties
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.