Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo ProtectedData.Protect (Byte[], Byte[], DataProtectionScope)

 

Data di pubblicazione: ottobre 2016

Crittografa i dati in una matrice di byte specificata e restituisce una matrice di byte che contiene i dati crittografati.

Spazio dei nomi:   System.Security.Cryptography
Assembly:  System.Security (in System.Security.dll)

public static byte[] Protect(
	byte[] userData,
	byte[] optionalEntropy,
	DataProtectionScope scope
)

Parametri

userData
Type: System.Byte[]

Matrice di byte che contiene i dati da crittografare.

optionalEntropy
Type: System.Byte[]

Una matrice di byte aggiuntiva facoltativa usata per aumentare la complessità della crittografia o null per non aggiungere alcuna complessità.

scope
Type: System.Security.Cryptography.DataProtectionScope

Uno dei valori di enumerazione che specifica l'ambito della crittografia.

Valore restituito

Type: System.Byte[]

Matrice di byte che rappresenta i dati crittografati.

Exception Condition
ArgumentNullException

Il valore del parametro userData è null.

CryptographicException

La crittografia non riuscita.

NotSupportedException

Il sistema operativo non supporta questo metodo.

OutOfMemoryException

Il sistema ha esaurito la memoria durante la crittografia dei dati.

Questo metodo può essere utilizzato per crittografare i dati, ad esempio le password, chiavi o stringhe di connessione. Il optionalEntropy parametro consente di aggiungere dati per aumentare la complessità della crittografia, ovvero specificare null per non aggiungere alcuna complessità. Se fornito, queste informazioni devono essere utilizzate anche durante la decrittografia dei dati mediante la Unprotect metodo.

System_CAPS_noteNota

Se si utilizza questo metodo durante la rappresentazione, è possibile ricevere l'errore seguente: "Chiave non valido nello stato specificato". Per evitare questo errore, caricare il profilo dell'utente che si desidera rappresentare prima di chiamare il metodo.

Nell'esempio seguente viene illustrato come utilizzare la protezione dati.

using System;
using System.Security.Cryptography;

public class DataProtectionSample
{
// Create byte array for additional entropy when using Protect method.
	static byte [] s_aditionalEntropy = { 9, 8, 7, 6, 5 };

	public static void Main()
	{
// Create a simple byte array containing data to be encrypted.

byte [] secret = { 0, 1, 2, 3, 4, 1, 2, 3, 4 };

//Encrypt the data.
		byte [] encryptedSecret = Protect( secret );
		Console.WriteLine("The encrypted byte array is:");
		PrintValues(encryptedSecret);

// Decrypt the data and store in a byte array.
		byte [] originalData = Unprotect( encryptedSecret );
		Console.WriteLine("{0}The original data is:", Environment.NewLine);
		PrintValues(originalData);

	}

	public static byte [] Protect( byte [] data )
	{
		try
		{
			// Encrypt the data using DataProtectionScope.CurrentUser. The result can be decrypted
			//  only by the same current user.
			return ProtectedData.Protect( data, s_aditionalEntropy, DataProtectionScope.CurrentUser );
		} 
		catch (CryptographicException e)
		{
			Console.WriteLine("Data was not encrypted. An error occurred.");
			Console.WriteLine(e.ToString());
			return null;
		}
	}

	public static byte [] Unprotect( byte [] data )
	{
		try
		{
			//Decrypt the data using DataProtectionScope.CurrentUser.
			return ProtectedData.Unprotect( data, s_aditionalEntropy, DataProtectionScope.CurrentUser );
		} 
		catch (CryptographicException e)
		{
			Console.WriteLine("Data was not decrypted. An error occurred.");
			Console.WriteLine(e.ToString());
			return null;
		}
	}

	public static void PrintValues( Byte[] myArr )  
	{
	      foreach ( Byte i in myArr )  
		  	{
		         Console.Write( "\t{0}", i );
			 }
      Console.WriteLine();
	 }

}

DataProtectionPermission

with the associated P:System.Security.Permissions.DataProtectionPermissionAttribute.ProtectData flag for permission to protect data.

.NET Framework
Disponibile da 2.0
Torna all'inizio
Mostra: