ConvertTo-SecureString

Converte texto sem formatação ou cadeias de caracteres criptografadas em cadeias de caracteres seguras.

Syntax

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

Description

O ConvertTo-SecureString cmdlet converte cadeias de caracteres padrão criptografadas em cadeias de caracteres seguras. Também pode converter o 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 ConvertFrom-SecureString cmdlet. Isso permite que ele seja armazenada em um arquivo para uso posterior.

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

Observação

Observe que, por DotNet, o conteúdo de um SecureString não é criptografado em sistemas não Windows.

Exemplos

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

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 criptografada padrão e converter a cadeia de caracteres criptografada padrão novamente em uma cadeia de caracteres segura.

PS C:\> $Secure = Read-Host -AsSecureString
PS C:\> $Secure
System.Security.SecureString
PS C:\> $Encrypted = ConvertFrom-SecureString -SecureString $Secure
PS C:\> $Encrypted
01000000d08c9ddf0115d1118c7a00c04fc297eb010000001a114d45b8dd3f4aa11ad7c0abdae98000000000
02000000000003660000a8000000100000005df63cea84bfb7d70bd6842e7efa79820000000004800000a000
000010000000f10cd0f4a99a8d5814d94e0687d7430b100000008bf11f1960158405b2779613e9352c6d1400
0000e6b7bf46a9d485ff211b9b2a2df3bd6eb67aae41
PS C:\> $Secure2 = ConvertTo-SecureString -String $Encrypted
PS C:\> $Secure2
System.Security.SecureString

O primeiro comando usa o parâmetro AsSecureString do Read-Host cmdlet 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 $Secure variável.

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

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

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

O quinto comando usa o ConvertTo-SecureString cmdlet para converter a cadeia de caracteres padrão criptografada na variável de volta em $Encrypted uma cadeia de caracteres segura. Ele salva o resultado na $Secure2 variável. O sexto comando exibe o valor da $Secure2 variável. 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

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

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

O primeiro comando usa o parâmetro AsSecureString do Read-Host cmdlet 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 $Secure variável.

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

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

O quarto comando usa o Get-Content cmdlet 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, que a ConvertTo-SecureString converte em uma cadeia de caracteres segura usando a chave especificada. Os resultados são salvos na $Secure2 variável.

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

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

$Secure_String_Pwd = ConvertTo-SecureString "P@ssW0rD!" -AsPlainText -Force

Cuidado

Evite usar cadeias de caracteres de texto sem formatação no script ou na linha de comando. O texto sem formatação pode aparecer em logs de eventos e logs de histórico de comandos.

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 segura protegem texto confidencial. O texto é criptografado para privacidade e é excluído da memória do computador depois que ele é 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 .

Type:SwitchParameter
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

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

Type:SwitchParameter
Position:2
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Key

Especifica a chave de criptografia usada para converter a cadeia de caracteres de segurança original na cadeia de caracteres padrão criptografada. Os comprimentos de chave válidos são 16, 24 e 32 bytes.

Type:Byte[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SecureKey

Especifica a chave de criptografia usada para converter a cadeia de caracteres de segurança original na cadeia de caracteres padrão criptografada. A chave deve ser fornecida no formato de uma cadeia de caracteres segura. A cadeia de caracteres segura será convertida em uma matriz de bytes a ser usada como a chave. Os comprimentos válidos da chave segura são 8, 12 e 16 pontos de código.

Type:SecureString
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-String

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

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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 .

Observações

Alguns caracteres, como emoticons, correspondem a vários pontos de código na cadeia de caracteres que os contém. Evite usar esses caracteres porque eles podem causar problemas e mal-entendidos quando usados em uma senha.