ProtectedData.Unprotect Methode

Definitie

Overloads

Name Description
Unprotect(Byte[], Byte[], DataProtectionScope)

Ontsleutelt de gegevens in een opgegeven bytematrix en retourneert een bytematrix die de ontsleutelde gegevens bevat.

Unprotect(ReadOnlySpan<Byte>, DataProtectionScope, ReadOnlySpan<Byte>)

Ontsleutelt de gegevens in een opgegeven bytematrix en retourneert een bytematrix die de ontsleutelde gegevens bevat.

Unprotect(ReadOnlySpan<Byte>, DataProtectionScope, Span<Byte>, ReadOnlySpan<Byte>)

Ontsleutelt de gegevens in een opgegeven buffer en schrijft de ontsleutelde gegevens naar een doelbuffer.

Unprotect(Byte[], Byte[], DataProtectionScope)

Bron:
ProtectedData.cs
Bron:
ProtectedData.cs
Bron:
ProtectedData.cs
Bron:
ProtectedData.cs
Bron:
ProtectedData.cs
Bron:
ProtectedData.cs
Bron:
ProtectedData.cs

Ontsleutelt de gegevens in een opgegeven bytematrix en retourneert een bytematrix die de ontsleutelde gegevens bevat.

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

Parameters

encryptedData
Byte[]

Een bytematrix met gegevens die zijn versleuteld met behulp van de Protect(Byte[], Byte[], DataProtectionScope) methode.

optionalEntropy
Byte[]

Een optionele extra bytematrix die is gebruikt om de gegevens te versleutelen of null als de extra bytematrix niet is gebruikt.

scope
DataProtectionScope

Een van de opsommingswaarden waarmee het bereik van gegevensbeveiliging wordt opgegeven die is gebruikt voor het versleutelen van de gegevens.

Retouren

Byte[]

Een bytematrix die de ontsleutelde gegevens vertegenwoordigt.

Uitzonderingen

De encryptedData parameter is null.

De ontsleuteling is mislukt.

Het besturingssysteem biedt geen ondersteuning voor deze methode.

Geen geheugen meer.

.NET Core en .NET 5+ alleen: aanroepen naar de methode Unprotect worden alleen ondersteund op Windows besturingssystemen.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u gegevensbeveiliging gebruikt.

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

Opmerkingen

Deze methode kan worden gebruikt om de beveiliging van gegevens op te heffen die zijn versleuteld met behulp van de Protect methode. Als de parameter tijdens de optionalEntropy versleuteling is gebruikt, moet deze worden opgegeven om de gegevens te ontsleutelen.

Note

Als u deze methode tijdens imitatie gebruikt, wordt mogelijk de volgende fout weergegeven: 'Sleutel is niet geldig voor gebruik in de opgegeven status'. Als u deze fout wilt voorkomen, laadt u het profiel van de gebruiker die u wilt imiteren voordat u de methode aanroept.

Van toepassing op

Unprotect(ReadOnlySpan<Byte>, DataProtectionScope, ReadOnlySpan<Byte>)

Bron:
ProtectedData.cs
Bron:
ProtectedData.cs
Bron:
ProtectedData.cs

Ontsleutelt de gegevens in een opgegeven bytematrix en retourneert een bytematrix die de ontsleutelde gegevens bevat.

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

Parameters

encryptedData
ReadOnlySpan<Byte>

Een buffer die gegevens bevat die moeten worden ontsleuteld.

scope
DataProtectionScope

Een van de opsommingswaarden die het bereik van versleuteling aangeeft.

optionalEntropy
ReadOnlySpan<Byte>

Een optionele extra buffer die wordt gebruikt om de complexiteit van de versleuteling te verhogen of leeg te maken voor geen extra complexiteit.

Retouren

Byte[]

Een bytematrix die de versleutelde gegevens vertegenwoordigt.

Uitzonderingen

De versleuteling is mislukt.

Het besturingssysteem biedt geen ondersteuning voor deze methode.

Het systeem heeft onvoldoende geheugen tijdens het ontsleutelen van de gegevens.

Het besturingssysteem is niet Windows.

Van toepassing op

Unprotect(ReadOnlySpan<Byte>, DataProtectionScope, Span<Byte>, ReadOnlySpan<Byte>)

Bron:
ProtectedData.cs
Bron:
ProtectedData.cs
Bron:
ProtectedData.cs

Ontsleutelt de gegevens in een opgegeven buffer en schrijft de ontsleutelde gegevens naar een doelbuffer.

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

Parameters

encryptedData
ReadOnlySpan<Byte>

Een buffer die gegevens bevat die moeten worden ontsleuteld.

scope
DataProtectionScope

Een van de opsommingswaarden die het bereik van versleuteling aangeeft.

destination
Span<Byte>

De buffer voor het ontvangen van de ontsleutelde gegevens.

optionalEntropy
ReadOnlySpan<Byte>

Een optionele extra buffer die wordt gebruikt om de complexiteit van de versleuteling te verhogen of leeg te maken voor geen extra complexiteit.

Retouren

Het totale aantal bytes dat naar destination

Uitzonderingen

De buffer in destination is te klein om de ontsleutelde gegevens op te slaan.

De versleuteling is mislukt.

Het besturingssysteem biedt geen ondersteuning voor deze methode.

Het systeem heeft onvoldoende geheugen tijdens het versleutelen van de gegevens.

Het besturingssysteem is niet Windows.

Van toepassing op