Compartilhar via


ConvertFrom-SecureString

Converte uma cadeia de caracteres segura em uma cadeia de caracteres padrão criptografada.

Sintaxe

ConvertFrom-SecureString
                [-SecureString] <SecureString>
                [[-SecureKey] <SecureString>]
                [<CommonParameters>]
ConvertFrom-SecureString
                [-SecureString] <SecureString>
                [-AsPlainText]
                [<CommonParameters>]
ConvertFrom-SecureString
                [-SecureString] <SecureString>
                [-Key <Byte[]>]
                [<CommonParameters>]

Description

O ConvertFrom-SecureString cmdlet converte uma cadeia de caracteres segura (System.Security.SecureString) em uma cadeia de caracteres padrão criptografada (System.String). Ao contrário de uma cadeia de caracteres segura, uma cadeia de caracteres criptografada padrão pode ser salva em um arquivo para uso posterior. A cadeia de caracteres padrão criptografada pode ser convertida de volta em seu formato de cadeia de caracteres segura usando o ConvertTo-SecureString cmdlet.

Se uma chave de criptografia for especificada usando os parâmetros Key ou SecureKey , o algoritmo de criptografia AES (Advanced Encryption Standard) será usado. A chave especificada deve ter um comprimento de 128, 192 ou 256 bits, pois esses são os comprimentos de chave suportados pelo algoritmo de criptografia AES. Se nenhuma chave for especificada, a API de Proteção aos Dados do Windows (DPAPI) é usada para criptografar a representação de cadeia de caracteres padrão.

Observação

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

Exemplos

Exemplo 1: Criar uma cadeia de caracteres segura

$SecureString = Read-Host -AsSecureString

Este comando cria uma cadeia de caracteres segura de caracteres digitados no prompt de comando. Depois de inserir o comando, digite a cadeia de caracteres que você deseja armazenar como uma cadeia de caracteres segura. Um asterisco (*) é exibido para representar cada caractere digitado.

Exemplo 2: Converter uma cadeia de caracteres segura em uma cadeia de caracteres padrão criptografada

$StandardString = ConvertFrom-SecureString $SecureString

Esse comando converte $SecureString a string segura na variável em uma string padrão criptografada. A cadeia de caracteres padrão criptografada resultante é armazenada $StandardString na variável.

Exemplo 3: Converter uma cadeia de caracteres segura em uma cadeia de caracteres padrão criptografada com uma chave de 192 bits

$Key = (3,4,2,3,56,34,254,222,1,1,2,23,42,54,33,233,1,34,2,7,6,5,35,43)
$StandardString = ConvertFrom-SecureString $SecureString -Key $Key

Esses comandos usam o algoritmo AES (Advanced Encryption Standard) para converter a cadeia de caracteres segura armazenada $SecureString na variável em uma cadeia de caracteres padrão criptografada com uma chave de 192 bits. A cadeia de caracteres padrão criptografada resultante é armazenada $StandardString na variável.

O primeiro comando armazena uma chave na $Key variável. A chave é uma matriz de 24 numerais decimais, cada um dos quais deve ser menor que 256 para caber em um único byte sem sinal.

Como cada numeral decimal representa um único byte (8 bits), a chave tem 24 dígitos para um total de 192 bits (8 x 24). Esse é um comprimento de chave válido para o algoritmo AES.

O segundo comando usa a $Key chave na variável para converter a cadeia de caracteres segura em uma cadeia de caracteres padrão criptografada.

Exemplo 4: Converter uma cadeia de caracteres segura diretamente em uma cadeia de caracteres de texto não criptografado

$secureString = ConvertTo-SecureString -String 'Example' -AsPlainText
$secureString # 'System.Security.SecureString'
ConvertFrom-SecureString -SecureString $secureString -AsPlainText # 'Example'

Parâmetros

-AsPlainText

Quando definido, ConvertFrom-SecureString converterá cadeias de caracteres seguras na cadeia de caracteres de texto não criptografado descriptografada como saída.

Esse parâmetro foi adicionado no PowerShell 7.0.

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

-Key

Especifica a chave de criptografia como uma matriz de 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 como uma cadeia de caracteres segura. O valor da cadeia de caracteres segura é convertido em uma matriz de bytes antes de ser usado como chave.

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

-SecureString

Especifica a cadeia de caracteres segura para converter uma cadeia de caracteres criptografada padrão.

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

Entradas

SecureString

Você pode canalizar um objeto SecureString para esse cmdlet.

Saídas

String

Esse cmdlet retorna a cadeia de caracteres de texto sem formatação criada.

Observações

  • Para criar uma cadeia de caracteres segura a partir de caracteres digitados no prompt de comando, use o parâmetro AsSecureString do Read-Host cmdlet.
  • Quando você usa os parâmetros Key ou SecureKey para especificar uma chave, o comprimento da chave deve estar correto. Por exemplo, uma chave de 128 bits pode ser especificada como uma matriz de bytes de 16 numerais decimais. Da mesma forma, as chaves de 192 bits e 256 bits correspondem a matrizes de bytes de 24 e 32 numerais decimais, respectivamente.
  • Alguns caracteres, como emoticons, correspondem a vários pontos de código na cadeia de caracteres que os contém. Evite usar esses caracteres, pois eles podem causar problemas e mal-entendidos quando usados em uma senha.