ProtectedData.Unprotect Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
| Nome | Descrizione |
|---|---|
| Unprotect(Byte[], Byte[], DataProtectionScope) |
Decrittografa i dati in una matrice di byte specificata e restituisce una matrice di byte contenente i dati decrittografati. |
| Unprotect(ReadOnlySpan<Byte>, DataProtectionScope, ReadOnlySpan<Byte>) |
Decrittografa i dati in una matrice di byte specificata e restituisce una matrice di byte contenente i dati decrittografati. |
| Unprotect(ReadOnlySpan<Byte>, DataProtectionScope, Span<Byte>, ReadOnlySpan<Byte>) |
Decrittografa i dati in un buffer specificato e scrive i dati decrittografati in un buffer di destinazione. |
Unprotect(Byte[], Byte[], DataProtectionScope)
- Origine:
- ProtectedData.cs
- Origine:
- ProtectedData.cs
- Origine:
- ProtectedData.cs
- Origine:
- ProtectedData.cs
- Origine:
- ProtectedData.cs
- Origine:
- ProtectedData.cs
- Origine:
- ProtectedData.cs
Decrittografa i dati in una matrice di byte specificata e restituisce una matrice di byte contenente i dati decrittografati.
public:
static cli::array <System::Byte> ^ Unprotect(cli::array <System::Byte> ^ encryptedData, cli::array <System::Byte> ^ optionalEntropy, System::Security::Cryptography::DataProtectionScope scope);
public static byte[] Unprotect(byte[] encryptedData, byte[]? optionalEntropy, System.Security.Cryptography.DataProtectionScope scope);
public static byte[] Unprotect(byte[] encryptedData, byte[] optionalEntropy, System.Security.Cryptography.DataProtectionScope scope);
static member Unprotect : byte[] * byte[] * System.Security.Cryptography.DataProtectionScope -> byte[]
Public Shared Function Unprotect (encryptedData As Byte(), optionalEntropy As Byte(), scope As DataProtectionScope) As Byte()
Parametri
- encryptedData
- Byte[]
Matrice di byte contenente dati crittografati tramite il Protect(Byte[], Byte[], DataProtectionScope) metodo .
- optionalEntropy
- Byte[]
Matrice di byte aggiuntiva facoltativa usata per crittografare i dati o null se non è stata usata la matrice di byte aggiuntiva.
- scope
- DataProtectionScope
Uno dei valori di enumerazione che specifica l'ambito di protezione dei dati usato per crittografare i dati.
Valori restituiti
Matrice di byte che rappresenta i dati decrittografati.
Eccezioni
Il encryptedData parametro è null.
Decrittografia non riuscita.
Il sistema operativo non supporta questo metodo.
Memoria insufficiente.
solo .NET Core e .NET 5+: le chiamate al metodo Unprotect sono supportate solo nei sistemi operativi Windows.
Esempio
Nell'esempio di codice seguente viene illustrato come usare la protezione dei dati.
using System;
using System.Security.Cryptography;
public class DataProtectionSample
{
// Create byte array for additional entropy when using Protect method.
static byte [] s_additionalEntropy = { 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_additionalEntropy, 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_additionalEntropy, 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();
}
}
Imports System.Security.Cryptography
Public Class DataProtectionSample
' Create byte array for additional entropy when using Protect method.
Private Shared s_additionalEntropy As Byte() = {9, 8, 7, 6, 5}
Public Shared Sub Main()
' Create a simple byte array containing data to be encrypted.
Dim secret As Byte() = {0, 1, 2, 3, 4, 1, 2, 3, 4}
'Encrypt the data.
Dim encryptedSecret As Byte() = Protect(secret)
Console.WriteLine("The encrypted byte array is:")
PrintValues(encryptedSecret)
' Decrypt the data and store in a byte array.
Dim originalData As Byte() = Unprotect(encryptedSecret)
Console.WriteLine("{0}The original data is:", Environment.NewLine)
PrintValues(originalData)
End Sub
Public Shared Function Protect(ByVal data() As Byte) As Byte()
Try
' Encrypt the data using DataProtectionScope.CurrentUser. The result can be decrypted
' only by the same current user.
Return ProtectedData.Protect(data, s_additionalEntropy, DataProtectionScope.CurrentUser)
Catch e As CryptographicException
Console.WriteLine("Data was not encrypted. An error occurred.")
Console.WriteLine(e.ToString())
Return Nothing
End Try
End Function
Public Shared Function Unprotect(ByVal data() As Byte) As Byte()
Try
'Decrypt the data using DataProtectionScope.CurrentUser.
Return ProtectedData.Unprotect(data, s_additionalEntropy, DataProtectionScope.CurrentUser)
Catch e As CryptographicException
Console.WriteLine("Data was not decrypted. An error occurred.")
Console.WriteLine(e.ToString())
Return Nothing
End Try
End Function
Public Shared Sub PrintValues(ByVal myArr() As [Byte])
Dim i As [Byte]
For Each i In myArr
Console.Write(vbTab + "{0}", i)
Next i
Console.WriteLine()
End Sub
End Class
Commenti
Questo metodo può essere usato per rimuovere la protezione dei dati crittografati tramite il Protect metodo . Se il parametro è stato usato durante la optionalEntropy crittografia, deve essere fornito per annullare la crittografia dei dati.
Note
Se si usa questo metodo durante la rappresentazione, è possibile che venga visualizzato l'errore seguente: "Chiave non valida per l'uso nello stato specificato". Per evitare questo errore, caricare il profilo dell'utente che si vuole rappresentare prima di chiamare il metodo .
Si applica a
Unprotect(ReadOnlySpan<Byte>, DataProtectionScope, ReadOnlySpan<Byte>)
- Origine:
- ProtectedData.cs
- Origine:
- ProtectedData.cs
- Origine:
- ProtectedData.cs
Decrittografa i dati in una matrice di byte specificata e restituisce una matrice di byte contenente i dati decrittografati.
public static byte[] Unprotect(ReadOnlySpan<byte> encryptedData, System.Security.Cryptography.DataProtectionScope scope, ReadOnlySpan<byte> optionalEntropy = default);
static member Unprotect : ReadOnlySpan<byte> * System.Security.Cryptography.DataProtectionScope * ReadOnlySpan<byte> -> byte[]
Public Shared Function Unprotect (encryptedData As ReadOnlySpan(Of Byte), scope As DataProtectionScope, Optional optionalEntropy As ReadOnlySpan(Of Byte) = Nothing) As Byte()
Parametri
- encryptedData
- ReadOnlySpan<Byte>
Buffer contenente i dati da decrittografare.
- scope
- DataProtectionScope
Uno dei valori di enumerazione che specifica l'ambito della crittografia.
- optionalEntropy
- ReadOnlySpan<Byte>
Buffer aggiuntivo facoltativo usato per aumentare la complessità della crittografia o vuoto per nessuna complessità aggiuntiva.
Valori restituiti
Matrice di byte che rappresenta i dati crittografati.
Eccezioni
La crittografia non è riuscita.
Il sistema operativo non supporta questo metodo.
Memoria esaurita durante la decrittografia dei dati.
Il sistema operativo non è Windows.
Si applica a
Unprotect(ReadOnlySpan<Byte>, DataProtectionScope, Span<Byte>, ReadOnlySpan<Byte>)
- Origine:
- ProtectedData.cs
- Origine:
- ProtectedData.cs
- Origine:
- ProtectedData.cs
Decrittografa i dati in un buffer specificato e scrive i dati decrittografati in un buffer di destinazione.
public static int Unprotect(ReadOnlySpan<byte> encryptedData, System.Security.Cryptography.DataProtectionScope scope, Span<byte> destination, ReadOnlySpan<byte> optionalEntropy = default);
static member Unprotect : ReadOnlySpan<byte> * System.Security.Cryptography.DataProtectionScope * Span<byte> * ReadOnlySpan<byte> -> int
Public Shared Function Unprotect (encryptedData As ReadOnlySpan(Of Byte), scope As DataProtectionScope, destination As Span(Of Byte), Optional optionalEntropy As ReadOnlySpan(Of Byte) = Nothing) As Integer
Parametri
- encryptedData
- ReadOnlySpan<Byte>
Buffer contenente i dati da decrittografare.
- scope
- DataProtectionScope
Uno dei valori di enumerazione che specifica l'ambito della crittografia.
- optionalEntropy
- ReadOnlySpan<Byte>
Buffer aggiuntivo facoltativo usato per aumentare la complessità della crittografia o vuoto per nessuna complessità aggiuntiva.
Valori restituiti
Numero totale di byte scritti in destination
Eccezioni
Il buffer in destination è troppo piccolo per contenere i dati decrittografati.
La crittografia non è riuscita.
Il sistema operativo non supporta questo metodo.
Memoria esaurita durante la crittografia dei dati.
Il sistema operativo non è Windows.