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.