Compartilhar via


ConvertTo-SecureString

Converte cadeias de caracteres padrão criptografadas em cadeias de caracteres seguras. Ele também pode converter texto sem formatação em cadeias de caracteres seguras. Ele é usado com ConvertFrom-SecureString e Read-Host.

Sintaxe

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

Description

O cmdlet ConvertTo-SecureString converte cadeias de caracteres padrão criptografadas em cadeias de caracteres seguras. Ele também pode converter texto sem formatação em cadeias de caracteres seguras. Ele é usado com ConvertFrom-SecureString e Read-Host. A cadeia de caracteres segura criada pelo cmdlet pode ser usada com cmdlets ou funções que exigem um parâmetro do tipo SecureString. A cadeia de caracteres segura pode ser convertida novamente em uma cadeia de caracteres padrão criptografada usando o cmdlet ConvertFrom-SecureString. Isso permite que ele seja armazenado em um arquivo para uso posterior.

Se a cadeia de caracteres padrão que está sendo convertida tiver sido criptografada com ConvertFrom-SecureString usando uma chave especificada, essa mesma chave deverá ser fornecida como o valor do parâmetro Key ou SecureKey do cmdlet ConvertTo-SecureString.

Exemplos

Exemplo 1: Converter uma cadeia de caracteres segura em uma cadeia de caracteres criptografada

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

Este exemplo mostra como criar uma cadeia de caracteres segura da entrada do usuário, converter a cadeia de caracteres segura em uma cadeia de caracteres padrão criptografada e converter a cadeia de caracteres padrão criptografada de volta em uma cadeia de caracteres segura.

O primeiro comando usa o parâmetro AsSecureString do cmdlet Read-Host para criar uma cadeia de caracteres segura. Depois de inserir o comando, todos os caracteres que você digitar serão convertidos em uma cadeia de caracteres segura e salvos na variável $Secure.

O segundo comando exibe o conteúdo da variável $Secure. Como a variável $Secure contém uma cadeia de caracteres segura, o Windows PowerShell exibe apenas o tipo System.Security.SecureString.

O terceiro comando usa o cmdlet ConvertFrom-SecureString para converter a cadeia de caracteres segura na variável $Secure em uma cadeia de caracteres padrão criptografada. Ele salva o resultado na variável $Encrypted.

O quarto comando exibe a cadeia de caracteres criptografada no valor da variável $Encrypted.

O quinto comando usa o cmdlet ConvertTo-SecureString para converter a cadeia de caracteres padrão criptografada na variável $Encrypted novamente em uma cadeia de caracteres segura. Ele salva o resultado na variável $Secure 2. O sexto comando exibe o valor da variável $Secure 2. O tipo SecureString indica que o comando foi bem-sucedido.

Exemplo 2: criar uma cadeia de caracteres segura de uma cadeia de caracteres criptografada em um arquivo

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)

Este exemplo mostra como criar uma cadeia de caracteres segura de uma cadeia de caracteres padrão criptografada que é salva em um arquivo.

O primeiro comando usa o parâmetro AsSecureString do cmdlet Read-Host para criar uma cadeia de caracteres segura. Depois de inserir o comando, todos os caracteres que você digitar serão convertidos em uma cadeia de caracteres segura e salvos na variável $Secure.

O segundo comando usa o cmdlet ConvertFrom-SecureString para converter a cadeia de caracteres segura na variável $Secure em uma cadeia de caracteres padrão criptografada usando a chave especificada. O conteúdo é salvo na variável $Encrypted.

O terceiro comando usa um operador de pipeline (|) para enviar o valor da variável $Encrypted para o cmdlet Set-Content, que salva o valor no arquivo Encrypted.txt.

O quarto comando usa o cmdlet Get-Content para obter a cadeia de caracteres padrão criptografada no arquivo Encrypted.txt. O comando usa um operador de pipeline para enviar a cadeia de caracteres criptografada para o cmdlet ConvertTo-SecureString, que a converte em uma cadeia de caracteres segura usando a chave especificada. Os resultados são salvos na variável $Secure 2.

Exemplo 3: Converter uma cadeia de caracteres de texto sem formatação em uma cadeia de caracteres segura

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

Esse comando converte a cadeia de caracteres de texto sem formatação P@ssW0rD! em uma cadeia de caracteres segura e armazena o resultado na variável $Secure_String_Pwd. Para usar o parâmetro AsPlainText, o parâmetro Force também deve ser incluído no comando.

Parâmetros

-AsPlainText

Especifica uma cadeia de caracteres de texto sem formatação para converter em uma cadeia de caracteres segura. Os cmdlets de cadeia de caracteres seguras ajudam a proteger o texto confidencial. O texto é criptografado para privacidade e é excluído da memória do computador depois de usado. Se você usar esse parâmetro para fornecer texto sem formatação como entrada, o sistema não poderá proteger essa entrada dessa maneira. Para usar esse parâmetro, você também deve especificar o parâmetro Force.

Tipo:SwitchParameter
Cargo:1
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Force

Confirma que você entende as implicações de usar o parâmetro AsPlainText e ainda deseja usá-lo.

Tipo:SwitchParameter
Cargo:2
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Key

Especifica a chave de criptografia a ser usada ao converter uma cadeia de caracteres segura em uma cadeia de caracteres padrão criptografada. Os comprimentos de chave válidos são 16, 24 e 32 bytes.

Tipo:Byte[]
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-SecureKey

Especifica a chave de criptografia a ser usada ao converter uma cadeia de caracteres segura em uma cadeia de caracteres padrão criptografada. A chave deve ser fornecida no formato de uma cadeia de caracteres segura. A cadeia de caracteres segura é convertida em uma matriz de bytes antes de ser usada como a chave. Os comprimentos de chave válidos são 16, 24 e 32 bytes.

Tipo:SecureString
Cargo:1
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-String

Especifica a cadeia de caracteres a ser convertida em uma cadeia de caracteres segura.

Tipo:String
Cargo:0
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

Entradas

String

Você pode canalizar uma cadeia de caracteres criptografada padrão para ConvertTo-SecureString.

Saídas

SecureString

ConvertTo-SecureString retorna um objeto SecureString.