ConvertFrom-SecureString

Converte una stringa sicura in una stringa standard crittografata.

Sintassi

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

Descrizione

Il ConvertFrom-SecureString cmdlet converte una stringa sicura (System.Security.SecureString) in una stringa standard crittografata (System.String). A differenza di una stringa sicura, una stringa standard crittografata può essere salvata in un file per essere usata successivamente. La stringa standard crittografata può essere convertita nel formato di stringa sicura usando il ConvertTo-SecureString cmdlet .

Se si specifica una chiave di crittografia usando i parametri Key o SecureKey , viene usato l'algoritmo di crittografia AES (Advanced Encryption Standard). La chiave specificata deve avere una lunghezza di 128, 192 o 256 bit, perché queste sono le lunghezze di chiave supportate dall'algoritmo di crittografia AES. Se non si specifica una chiave, per crittografare la rappresentazione di stringa standard viene usata Data Protection API (DPAPI) di Windows.

Nota

Si noti che per DotNet, il contenuto di secureString non viene crittografato nei sistemi non Windows.

Esempio

Esempio 1: Creare una stringa sicura

$SecureString = Read-Host -AsSecureString

Questo comando crea una stringa sicura dai caratteri digitati al prompt dei comandi. Dopo aver immesso il comando, digitare la stringa da archiviare come stringa sicura. Viene visualizzato un asterisco (*) per rappresentare ogni carattere digitato.

Esempio 2: Convertire una stringa sicura in una stringa standard crittografata

$StandardString = ConvertFrom-SecureString $SecureString

Questo comando converte la stringa sicura nella $SecureString variabile in una stringa standard crittografata. La stringa standard crittografata risultante viene archiviata nella $StandardString variabile .

Esempio 3: Convertire una stringa sicura in una stringa standard crittografata con una chiave a 192 bit

$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

Questi comandi usano l'algoritmo AES (Advanced Encryption Standard) per convertire la stringa protetta archiviata nella variabile in $SecureString una stringa standard crittografata con una chiave a 192 bit. La stringa standard crittografata risultante viene archiviata nella $StandardString variabile .

Il primo comando archivia una chiave nella $Key variabile . La chiave è una matrice di 24 numeri decimali, ognuno dei quali deve essere minore di 256 per adattarsi a un singolo byte senza segno.

Poiché ogni numero decimale rappresenta un singolo byte (8 bit), la chiave ha 24 cifre per un totale di 192 bit (8 x 24). Questa lunghezza di chiave è valida per l'algoritmo AES.

Il secondo comando usa la chiave nella variabile per convertire la stringa protetta in $Key una stringa standard crittografata.

Esempio 4: Convertire una stringa protetta direttamente in una stringa di testo non crittografato

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

Parametri

-AsPlainText

Se impostato, ConvertFrom-SecureString convertirà stringhe sicure nella stringa di testo non crittografato decrittografata come output.

Questo parametro è stato aggiunto in PowerShell 7.0.

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

-Key

Specifica la chiave di crittografia come una matrice di byte.

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

-SecureKey

Specifica la chiave di crittografia come una stringa sicura. Il valore della stringa sicura viene convertito in una matrice di byte prima di essere usata come chiave.

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

-SecureString

Specifica la stringa sicura da convertire una stringa standard crittografata.

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

Input

SecureString

È possibile inviare tramite pipe un oggetto SecureString a questo cmdlet.

Output

String

Questo cmdlet restituisce la stringa di testo normale creata.

Note

  • Per creare una stringa sicura da caratteri digitati al prompt dei comandi, usare il parametro AsSecureString del Read-Host cmdlet.
  • Quando si usano i parametri Key o SecureKey per specificare una chiave, la lunghezza della chiave deve essere corretta. Ad esempio, una chiave di 128 bit può essere specificata come matrice di byte di 16 numeri decimali. Analogamente, le chiavi a 192 bit e a 256 bit corrispondono rispettivamente a matrici di byte di 24 e 32 numeri decimali.
  • Alcuni caratteri, ad esempio emoticon, corrispondono a diversi punti di codice nella stringa che li contiene. Evitare di usare questi caratteri perché possono causare problemi e incomprensioni quando vengono usati in una password.