ConvertTo-SecureString
Convertit le texte brut ou les chaînes chiffrées en chaînes sécurisées.
Syntaxe
ConvertTo-SecureString
[-String] <String>
[[-SecureKey] <SecureString>]
[<CommonParameters>]
ConvertTo-SecureString
[-String] <String>
[-AsPlainText]
[-Force]
[<CommonParameters>]
ConvertTo-SecureString
[-String] <String>
[-Key <Byte[]>]
[<CommonParameters>]
Description
L’applet de commande ConvertTo-SecureString
convertit les chaînes standard chiffrées en chaînes sécurisées. Il 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 commande ConvertFrom-SecureString
. Cela lui permet d’être stocké dans un fichier pour une utilisation ultérieure.
Si la chaîne standard en cours de conversion a été chiffrée avec ConvertFrom-SecureString
à l’aide d’une clé spécifiée, cette même clé doit être fournie comme valeur du paramètre de clé ou du paramètre SecureKey de l’applet de commande ConvertTo-SecureString
.
Remarque
Pour plus d'informations sur la protection des données de SecureString, consultez Quelle est la sécurité de SecureString ?.
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 standard chiffrée 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 de commande Read-Host
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 variable $Secure
.
La deuxième commande affiche le contenu de la variable $Secure
. Étant donné que la variable $Secure
contient une chaîne sécurisée, PowerShell affiche uniquement le type System.Security.SecureString.
La troisième commande utilise l’applet de commande ConvertFrom-SecureString
pour convertir la chaîne sécurisée dans la variable $Secure
en chaîne standard chiffrée. Il enregistre le résultat dans la variable $Encrypted
.
La quatrième commande affiche la chaîne chiffrée dans la valeur de la variable $Encrypted
.
La cinquième commande utilise l’applet de commande ConvertTo-SecureString
pour convertir la chaîne standard chiffrée dans la variable $Encrypted
en chaîne sécurisée. Il enregistre le résultat dans la variable $Secure2
. La sixième commande affiche la valeur de la variable $Secure2
. 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 standard chiffrée 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 de commande Read-Host
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 variable $Secure
.
La deuxième commande utilise l’applet de commande ConvertFrom-SecureString
pour convertir la chaîne sécurisée dans la variable $Secure
en chaîne standard chiffrée à l’aide de la clé spécifiée. Le contenu est enregistré dans la variable $Encrypted
.
La troisième commande utilise un opérateur de pipeline (|
) pour envoyer la valeur de la variable $Encrypted
à l’applet de commande Set-Content
, qui enregistre la valeur dans le fichier Encrypted.txt.
La quatrième commande utilise l’applet de commande Get-Content
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 de commande ConvertTo-SecureString
, 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 variable $Secure2
.
Exemple 3 : Convertir une chaîne de texte brut en chaîne sécurisée
Cette commande convertit la chaîne de texte brut P@ssW0rD!
en chaîne sécurisée et stocke le résultat dans la variable $Secure_String_Pwd
.
À compter de PowerShell 7, le paramètre Force n’est pas obligatoire lors de l’utilisation du paramètre AsPlainText. En incluant le paramètre Force, on garantit que l’instruction est compatible avec les versions antérieures.
$Secure_String_Pwd = ConvertTo-SecureString "P@ssW0rD!" -AsPlainText -Force
Attention
Vous devez é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 permettent de protéger le texte confidentiel. Le texte est chiffré pour la confidentialité et est supprimé de la mémoire de l’ordinateur après son utilisation. Si vous utilisez ce paramètre pour fournir du texte brut comme entrée, le système ne peut pas protéger cette entrée de cette manière.
Type: | SwitchParameter |
Position: | 1 |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | 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 |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | 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 |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | 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 |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-String
Spécifie la chaîne à convertir en chaîne sécurisée.
Type: | String |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | 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.