Compartir a través de


ConvertTo-SecureString

Convierte cadenas estándar cifradas en cadenas seguras. También puede convertir texto sin formato en cadenas seguras. Se usa con ConvertFrom-SecureString y Read-Host.

Sintaxis

Secure (valor predeterminado)

ConvertTo-SecureString
    [-String] <String>
    [[-SecureKey] <SecureString>]
    [<CommonParameters>]

PlainText

ConvertTo-SecureString
    [-String] <String>
    [-AsPlainText]
    [-Force]
    [<CommonParameters>]

Open

ConvertTo-SecureString
    [-String] <String>
    [-Key <Byte[]>]
    [<CommonParameters>]

Description

El cmdlet ConvertTo-SecureString convierte cadenas estándar cifradas en cadenas seguras. También puede convertir texto sin formato en cadenas seguras. Se usa con ConvertFrom-SecureString y Read-Host. La cadena segura creada por el cmdlet se puede usar con cmdlets o funciones que requieren un parámetro de tipo SecureString. La cadena segura se puede convertir a una cadena estándar cifrada mediante el cmdlet ConvertFrom-SecureString. Esto permite almacenarlo en un archivo para su uso posterior.

Si la cadena estándar que se va a convertir se cifró con ConvertFrom-SecureString mediante una clave especificada, se debe proporcionar esa misma clave como valor del Key de o parámetro SecureKey del cmdlet ConvertTo-SecureString.

Ejemplos

Ejemplo 1: Convertir una cadena segura en una cadena cifrada

PS C:\> $Secure = Read-Host -AsSecureString
PS C:\> $Secure
System.Security.SecureString PS C:\> $Encrypted = ConvertFrom-SecureString -SecureString $Secure
PS C:\> $Encrypted
01000000d08c9ddf0115d1118c7a00c04fc297eb010000001a114d45b8dd3f4aa11ad7c0abdae9800000000002000000000003660000a8000000100000005df63cea84bfb7d70bd6842e7
efa79820000000004800000a000000010000000f10cd0f4a99a8d5814d94e0687d7430b100000008bf11f1960158405b2779613e9352c6d14000000e6b7bf46a9d485ff211b9b2a2df3bd
6eb67aae41 PS C:\> $Secure2 = ConvertTo-SecureString -String $Encrypted
PS C:\> $Secure2
System.Security.SecureString

En este ejemplo se muestra cómo crear una cadena segura a partir de la entrada del usuario, convertir la cadena segura en una cadena estándar cifrada y, a continuación, volver a convertir la cadena estándar cifrada en una cadena segura.

El primer comando usa el parámetro AsSecureString del cmdlet Read-Host para crear una cadena segura. Después de escribir el comando, los caracteres que escriba se convertirán en una cadena segura y, a continuación, se guardarán en la variable $Secure.

El segundo comando muestra el contenido de la variable $Secure. Dado que la variable $Secure contiene una cadena segura, Windows PowerShell solo muestra el tipo System.Security.SecureString.

El tercer comando usa el cmdlet ConvertFrom-SecureString para convertir la cadena segura en la variable $Secure en una cadena estándar cifrada. Guarda el resultado en la variable $Encrypted.

El cuarto comando muestra la cadena cifrada en el valor de la variable $Encrypted.

El quinto comando usa el cmdlet ConvertTo-SecureString para convertir la cadena estándar cifrada de la variable $Encrypted en una cadena segura. Guarda el resultado en la variable $Secure 2. El sexto comando muestra el valor de la variable $Secure 2. El tipo SecureString indica que el comando se realizó correctamente.

Ejemplo 2: Creación de una cadena segura a partir de una cadena cifrada en un archivo

PS C:\> $Secure = Read-Host -AsSecureString
PS C:\> $Encrypted = ConvertFrom-SecureString -SecureString $Secure -Key (1..16)
PS C:\> $Encrypted | Set-Content Encrypted.txt
PS C:\> $Secure2 = Get-Content Encrypted.txt | ConvertTo-SecureString -Key (1..16)

En este ejemplo se muestra cómo crear una cadena segura a partir de una cadena estándar cifrada que se guarda en un archivo.

El primer comando usa el parámetro AsSecureString del cmdlet Read-Host para crear una cadena segura. Después de escribir el comando, los caracteres que escriba se convertirán en una cadena segura y, a continuación, se guardarán en la variable $Secure.

El segundo comando usa el cmdlet ConvertFrom-SecureString para convertir la cadena segura en la variable $Secure en una cadena estándar cifrada mediante la clave especificada. El contenido se guarda en la variable $Encrypted.

El tercer comando usa un operador de canalización (|) para enviar el valor de la variable $Encrypted al cmdlet Set-Content, que guarda el valor en el archivo Encrypted.txt.

El cuarto comando usa el cmdlet Get-Content para obtener la cadena estándar cifrada en el archivo Encrypted.txt. El comando usa un operador de canalización para enviar la cadena cifrada al cmdlet ConvertTo-SecureString, que lo convierte en una cadena segura mediante la clave especificada. Los resultados se guardan en la variable $Secure 2.

Ejemplo 3: Convertir una cadena de texto sin formato en una cadena segura

PS C:\> $Secure_String_Pwd = ConvertTo-SecureString "P@ssW0rD!" -AsPlainText -Force

Este comando convierte la cadena de texto sin formato P@ssW0rD! en una cadena segura y almacena el resultado en la variable $Secure_String_Pwd. Para usar el parámetro AsPlainText, el parámetro Force también debe incluirse en el comando .

Parámetros

-AsPlainText

Especifica una cadena de texto sin formato que se va a convertir en una cadena segura. Los cmdlets de cadena segura ayudan a proteger los textos confidenciales. El texto se cifra para la privacidad y se elimina de la memoria del equipo después de usarlo. Si usa este parámetro para proporcionar texto sin formato como entrada, el sistema no puede proteger esa entrada de esta manera. Para usar este parámetro, también debe especificar el parámetro Force.

Propiedades de parámetro

Tipo:SwitchParameter
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

PlainText
Posición:1
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Force

Confirma que comprende las implicaciones de usar el parámetro AsPlainText y desea usarlo.

Propiedades de parámetro

Tipo:SwitchParameter
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

PlainText
Posición:2
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Key

Especifica la clave de cifrado que se va a usar al convertir una cadena segura en una cadena estándar cifrada. Las longitudes de clave válidas son de 16, 24 y 32 bytes.

Propiedades de parámetro

Tipo:

Byte[]

Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

Open
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-SecureKey

Especifica la clave de cifrado que se va a usar al convertir una cadena segura en una cadena estándar cifrada. La clave debe proporcionarse en el formato de una cadena segura. La cadena segura se convierte en una matriz de bytes antes de usarse como clave. Las longitudes de clave válidas son de 16, 24 y 32 bytes.

Propiedades de parámetro

Tipo:SecureString
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

Secure
Posición:1
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-String

Especifica la cadena que se va a convertir en una cadena segura.

Propiedades de parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:0
Obligatorio:True
Valor de la canalización:True
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

CommonParameters

Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.

Entradas

String

Puede canalizar una cadena cifrada estándar a ConvertTo-SecureString.

Salidas

SecureString

ConvertTo-SecureString devuelve un objeto SecureString.