ConvertTo-SecureString

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

Sintaxe

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

Descrição

O cmdlet ConvertTo-SecureString converte strings padrão criptografadas em strings seguras. Ele também pode converter texto sem formatação em strings seguras. É usado com ConvertFrom-SecureString e Read-Host. A string segura, criada pelo cmdlet, pode ser usada com cmdlets ou funções que requerem um parâmetro do tipo SecureString. A string segura pode ser novamente convertida em uma string padrão criptografada usando o cmdlet ConvertFrom-SecureString. Isso permite que ela seja armazenada em um arquivo para ser usada posteriormente.

Se a string 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.

Parâmetros

-AsPlainText

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

Necessário? false
Posição? 2
Valor padrão
Aceitar entrada do pipeline? false
Aceitar caracteres curinga? false

-Force

Confirma que você compreende as implicações de uso do parâmetro AsPlainText e ainda deseja usá-lo.

Necessário? false
Posição? 3
Valor padrão
Aceitar entrada do pipeline? false
Aceitar caracteres curinga? false

-Key <Byte[]>

Especifica a chave de criptografia a ser usada durante a conversão de uma string segura em uma string padrão criptografada. Os tamanhos de chave válidos são 16, 24 e 32 bytes.

Necessário? false
Posição? named
Valor padrão
Aceitar entrada do pipeline? false
Aceitar caracteres curinga? false

-SecureKey <SecureString>

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

Necessário? false
Posição? 2
Valor padrão
Aceitar entrada do pipeline? false
Aceitar caracteres curinga? false

-String <string>

Especifica a string a ser convertida em uma string segura.

Necessário? true
Posição? 1
Valor padrão
Aceitar entrada do pipeline? true (ByValue)
Aceitar caracteres curinga? false

<CommonParameters>

Esse cmdlet oferece suporte aos parâmetros comuns: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Para obter mais informações, consulte about_Commonparameters.

Entradas e saídas

O tipo de entrada é o tipo dos objetos que você pode canalizar para o cmdlet. O tipo de retorno é o tipo dos objetos que o cmdlet retorna.

Entradas System.String

Também é possível enviar uma string criptografada padrão para ConvertTo-SecureString.

Saídas System.Security.SecureString

ConvertTo-SecureString retorna um objeto SecureString.

Exemplo 1

C:\PS>$secure = read-host -assecurestring
C:\PS> $secure
System.Security.SecureString
C:\PS> $encrypted = convertfrom-securestring -securestring $secure
C:\PS> $encrypted
01000000d08c9ddf0115d1118c7a00c04fc297eb010000001a114d45b8dd3f4aa11ad7c0abdae9800000000002000000000003660000a8000000100000005df63cea84bfb7d70bd6842e7
efa79820000000004800000a000000010000000f10cd0f4a99a8d5814d94e0687d7430b100000008bf11f1960158405b2779613e9352c6d14000000e6b7bf46a9d485ff211b9b2a2df3bd
6eb67aae41
C:\PS> $secure2 = convertto-securestring -string $encrypted
C:\PS> $secure2
System.Security.SecureString
Descrição
-----------
Este exemplo mostra como criar uma string segura a partir da entrada do usuário, convertê-la em uma string criptografada padrão e, em seguida, converter novamente a string criptografada padrão em uma cadeia segura.
O primeiro comando usa o parâmetro AsSecureString do cmdlet Read-Host para criar uma string segura. Depois que você digitar o comando, os caracteres digitados serão convertidos em uma string 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 string segura, o Windows PowerShell exibe apenas o tipo System.Security.SecureString. 
O terceiro comando usa o cmdlet ConvertFrom-SecureString para converter a string segura na variável $secure em uma string criptografada padrão. Ele salva o resultado na variável $encrypted. O quarto comando exibe a string criptografada no valor da variável $encrypted.
O quinto comando usa o cmdlet ConvertTo-SecureString para converter a string criptografa padrão na variável $encrypted em uma string segura. Ele salva o resultado na variável $secure2. O sexto comando exibe o valor da variável $secure2. O tipo SecureString indica que o comando obteve êxito.

Exemplo 2

C:\PS>$secure = read-host -assecurestring
C:\PS> $encrypted = convertfrom-securestring -secureString $secure -key (1..16)
C:\PS> $encrypted | set-content encrypted.txt
C:\PS> $secure2 = get-content encrypted.txt | convertto-securestring -key (1..16)
Descrição
-----------
Este exemplo mostra como criar uma string segura a partir de uma string criptografada padrão salva em um arquivo.
O primeiro comando usa o parâmetro AsSecureString do cmdlet Read-Host para criar uma string segura. Depois que você digitar o comando, os caracteres digitados serão convertidos em uma string segura e salvos na variável $secure. 
O segundo comando usa o cmdlet ConvertFrom-SecureString para converter a string segura na variável $secure em uma string criptografada padrão, 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 string criptografada padrão no arquivo Encrypted.txt. O comando usa um operador de pipeline para enviar a string criptografada ao cmdlet ConvertTo-SecureString, que a converte em uma string segura usando a chave especificada. Os resultados são salvos na variável $secure2.

Exemplo 3

C:\PS>$secure_string_pwd = convertto-securestring "P@ssW0rD!" -asplaintext -force
Descrição
-----------
Esse comando converte a string de texto sem formatação, "P@ssW0rD!", em uma string 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.

See Also