Converte stringhe standard crittografate in stringhe protette. Consente inoltre di convertire testo normale in stringhe protette. Viene utilizzato con ConvertFrom-SecureString e Read-Host.

Sintassi

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

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

ConvertTo-SecureString [[-SecureKey] <SecureString>] [-String] <string> [<CommonParameters>]

Descrizione

Il cmdlet ConvertTo-SecureString converte stringhe standard crittografate in stringhe protette. Consente inoltre di convertire testo normale in stringhe protette. Viene utilizzato con ConvertFrom-SecureString e Read-Host. La stringa protetta creata dal cmdlet può essere utilizzata con cmdlet o funzioni che richiedono un parametro di tipo SecureString. La stringa sicura può essere riconvertita nel formato di stringa standard crittografata tramite il cmdlet ConvertFrom-SecureString. In questo modo, può essere archiviata in un file per essere utilizzata successivamente.

Se la stringa standard che deve essere convertita è stata crittografata con ConvertFrom-SecureString utilizzando una chiave specificata, è necessario fornire la stessa chiave come valore del parametro Key o SecureKey del cmdlet ConvertTo-SecureString.

Parametri

-AsPlainText

Specifica una stringa di testo normale da convertire in stringa protetta. I cmdlet SecureString offrono supporto per la sicurezza di testo riservato. Il testo viene crittografato per garantire la sicurezza dei dati personali e dopo essere stato utilizzato viene eliminato dalla memoria del computer. Se si utilizza questo parametro per fornire testo normale come input, l'input non può essere protetto dal sistema. Per utilizzare questo parametro, è necessario specificare anche il parametro Force.

Obbligatorio?

false

Posizione?

2

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Force

Verifica che l'utente abbia compreso le implicazioni dell'utilizzo del parametro AsPlainText e voglia comunque utilizzarlo.

Obbligatorio?

false

Posizione?

3

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Key <Byte[]>

Specifica la chiave di crittografia da utilizzare per la conversione di una stringa protetta in stringa standard crittografata. Le lunghezze valide per le chiavi sono di 16, 24 e 32 byte.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-SecureKey <SecureString>

Specifica la chiave di crittografia da utilizzare per la conversione di una stringa protetta in stringa standard crittografata. La chiave deve essere fornita nel formato di stringa protetta. La stringa protetta viene convertita in una matrice di byte prima di essere utilizzata come chiave. Le lunghezze valide per le chiavi sono di 16, 24 e 32 byte.

Obbligatorio?

false

Posizione?

2

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-String <string>

Specifica la stringa da convertire in stringa protetta.

Obbligatorio?

true

Posizione?

1

Valore predefinito

Accettare input da pipeline?

true (ByValue)

Accettare caratteri jolly?

false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input

System.String

È possibile reindirizzare una stringa standard crittografata a ConvertTo-SecureString.

Output

System.Security.SecureString

ConvertTo-SecureString restituisce un oggetto SecureString.

Esempio 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

Descrizione
-----------
In questo esempio viene illustrato come creare una stringa sicura dall'input dell'utente, come convertire la stringa sicura in una stringa standard crittografata e come convertire di nuovo la stringa standard crittografata in una stringa sicura.

Con il primo comando viene utilizzato il parametro AsSecureString del cmdlet Read-Host per creare una stringa sicura. Dopo avere immesso il comando, qualsiasi carattere digitato viene convertito in una stringa sicura e salvato in una variabile $secure.

Con il secondo comando viene visualizzato il contenuto della variabile $secure. Poiché la variabile $secure contiene una stringa sicura, in Windows PowerShell viene visualizzato solo il tipo System.Security.SecureString. 

Con il terzo comando viene utilizzato il cmdlet ConvertFrom-SecureString per convertire la stringa sicura archiviata in una variabile $secure in una stringa standard crittografata. Il risultato viene salvato nella variabile $encrypted. Con il quarto comando viene visualizzata la stringa crittografata nel valore della variabile $encrypted.

Con il quinto comando viene utilizzato il cmdlet ConvertTo-SecureString per convertire la stringa standard crittografata archiviata nella variabile $encrypted in una stringa sicura. Il risultato viene salvato nella variabile $secure2. Con il sesto comando viene visualizzato il valore della variabile $secure2. Il tipo SecureString indica che il comando ha avuto esito positivo.






Esempio 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)

Descrizione
-----------
In questo esempio viene illustrato come creare una stringa sicura da una stringa standard crittografata salvata in un file.

Con il primo comando viene utilizzato il parametro AsSecureString del cmdlet Read-Host per creare una stringa sicura. Dopo avere immesso il comando, qualsiasi carattere digitato viene convertito in una stringa sicura e salvato in una variabile $secure. 

Con il secondo comando viene utilizzato il cmdlet ConvertFrom-SecureString per convertire la stringa sicura archiviata in una variabile $secure in una stringa standard crittografata tramite la chiave specificata. Il contenuto viene salvato nella variabile $encrypted.

Con il terzo comando viene utilizzato un operatore pipeline (|) per inviare il valore della variabile $encrypted nel cmdlet Set-Content che salva il valore nel file Encrypted.txt.

Con il quarto comando viene utilizzato il cmdlet Get-Content per ottenere la stringa standard crittografata nel file Encrypted.txt. Viene utilizzato un operatore pipeline per inviare la stringa crittografata al cmdlet ConvertTo-SecureString che la converte in una stringa sicura tramite la chiave specificata. I risultati vengono salvati nella variabile $secure2.






Esempio 3

C:\PS>$secure_string_pwd = convertto-securestring "P@ssW0rD!" -asplaintext -force

Descrizione
-----------
Con questo comando una stringa di testo normale, "P@ssW0rD!", viene convertita in stringa sicura e il risultato viene archiviato nella variabile $secure_string_pwd. Per utilizzare il parametro AsPlainText, anche il parametro Force deve essere incluso nel comando.






Vedere anche




Argomenti della Guida