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. É 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 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. É usado com ConvertFrom-SecureString e Read-Host. A cadeia de caracteres segura, criada pelo cmdlet, pode ser usada com cmdlets ou funções que requerem um parâmetro do tipo SecureString. A cadeia de caracteres segura pode ser novamente convertida em uma cadeia de caracteres padrão criptografada usando o cmdlet ConvertFrom-SecureString. Isso permite que ela seja armazenada em um arquivo para ser usada posteriormente.

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.

Parâmetros

-AsPlainText

Especifica uma cadeia de caracteres de texto sem formatação a ser convertida em uma cadeia de caracteres segura. Os cmdlets de cadeia de caracteres 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 cadeia de caracteres segura em uma cadeia de caracteres 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 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 é 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 cadeia de caracteres a ser convertida em uma cadeia de caracteres 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 cadeia de caracteres 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 cadeia de caracteres segura a partir da entrada do usuário, convertê-la em uma cadeia de caracteres criptografada padrão e, em seguida, converter novamente a cadeia de caracteres criptografada padrão em uma cadeia segura.

O primeiro comando usa o parâmetro AsSecureString do cmdlet Read-Host para criar uma cadeia de caracteres segura. Depois que você digitar o comando, os caracteres digitados 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 criptografada padrão. 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 criptografa padrão na variável $encrypted em uma cadeia de caracteres 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 cadeia de caracteres segura a partir de uma cadeia de caracteres criptografada padrão salva em um arquivo.

O primeiro comando usa o parâmetro AsSecureString do cmdlet Read-Host para criar uma cadeia de caracteres segura. Depois que você digitar o comando, os caracteres digitados 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 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 cadeia de caracteres criptografada padrão no arquivo Encrypted.txt. O comando usa um operador de pipeline para enviar a cadeia de caracteres criptografada ao cmdlet ConvertTo-SecureString, que a converte em uma cadeia de caracteres 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 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.





Consulte também

Conceitos

ConvertFrom-SecureString
Read-Host