Szybki start: szyfrowanie/odszyfrowywanie tekstu przy użyciu zestawu MIP SDK (C#)

W tym przewodniku Szybki start pokazano, jak używać większej liczby zestawów SDK usługi MIP Protection. Korzystając z jednego z szablonów ochrony wymienionych w poprzednim przewodniku Szybki start, użyj programu obsługi ochrony do szyfrowania tekstu ad hoc. Klasa programu obsługi ochrony uwidacznia różne operacje na potrzeby stosowania/usuwania ochrony.

Wymagania wstępne

Jeśli jeszcze tego nie zrobiono, przed kontynuowaniem upewnij się, że zostały spełnione następujące wymagania wstępne:

Dodawanie logiki do ustawiania i pobierania szablonu ochrony

Dodaj logikę do szyfrowania tekstu ad hoc przy użyciu obiektu aparatu ochrony.

  1. Za pomocą Eksplorator rozwiązań otwórz plik cs w projekcie zawierający implementację metody Main()". Domyślnie ma taką samą nazwę jak projekt zawierający go, który został określony podczas tworzenia projektu.

  2. Na końcu treści, gdzie została przerwana w poprzednim przewodniku Main() Szybki start, wstaw następujący kod:

    //Set text to encrypt and template ID
    string inputText = "<Sample-text>";
    string templateId = "<template-id>";
    //Create a template based publishing descriptor
    ProtectionDescriptor protectionDescriptor = new ProtectionDescriptor(templateId);
    
    //Create publishing settings using protection descriptor
    PublishingSettings publishingSettings = new PublishingSettings(protectionDescriptor);
    
    //Generate Protection Handler for publishing
    var publishingHandler = Task.Run(async() => await protectionEngine.CreateProtectionHandlerForPublishingAsync(publishingSettings)).Result;
    
    //Encrypt text using Publishing handler
    long bufferSize = publishingHandler.GetProtectedContentLength(inputText.Length, true);
    byte[] inputTextBuffer = Encoding.ASCII.GetBytes(inputText);
    byte[] encryptedTextBuffer = new byte[bufferSize];
    publishingHandler.EncryptBuffer(0, inputTextBuffer, encryptedTextBuffer, true);
    Console.WriteLine("Original text: {0}", inputText);
    Console.WriteLine("Encrypted text: {0}", Encoding.UTF8.GetString(encryptedTextBuffer));
    
    //Create a Protection handler for consumption using the same publishing licence
    var serializedPublishingLicense = publishingHandler.GetSerializedPublishingLicense();
    PublishingLicenseInfo plInfo = PublishingLicenseInfo.GetPublishingLicenseInfo(serializedPublishingLicense);
    ConsumptionSettings consumptionSettings = new ConsumptionSettings(plInfo);
    var consumptionHandler = protectionEngine.CreateProtectionHandlerForConsumption(consumptionSettings);
    
    //Use the handler to decrypt the encrypted text
    long buffersize = encryptedTextBuffer.Length;
    byte[] decryptedBuffer = new byte[bufferSize];
    var bytesDecrypted = consumptionHandler.DecryptBuffer(0, encryptedTextBuffer, decryptedBuffer, true);
    byte[] OutputBuffer = new byte[bytesDecrypted];
    for (int i = 0; i < bytesDecrypted; i++){
       OutputBuffer[i] = decryptedBuffer[i];
    }
    
    Console.WriteLine("Decrypted content: {0}", Encoding.UTF8.GetString(OutputBuffer));
    Console.WriteLine("Press a key to quit.");
    Console.ReadKey();
    
    
  3. Pod koniec znajdowania bloku zamykania aplikacji utworzonego w pierwszym przewodniku Main() Szybki start i dodaj wiersze procedury obsługi:

    // Application Shutdown
    publishingHandler = null;
    consumptionHandler = null;
    protectionEngine = null;
    protectionProfile = null;
    mipContext = null;
    
  4. Zastąp wartości symboli zastępczych w kodzie źródłowym przy użyciu następujących wartości:

    Symbol zastępczy Wartość
    <przykładowy tekst> Przykładowy tekst, który chcesz zaszyfrować, na przykład: My secure text.
    <identyfikator szablonu> Identyfikator szablonu skopiowany z danych wyjściowych konsoli w poprzednim przewodniku Szybki start, na przykład: bb7ed207-046a-4caf-9826-647cff56b990.

Kompilowanie i testowanie aplikacji

Skompiluj i przetestuj aplikację kliencą.

  1. Użyj klawiszy CTRL-SHIFT-B (rozwiązanie kompilacji), aby skompilować aplikację kliencą. Jeśli nie masz błędów kompilacji, użyj klawisza F5 (Rozpocznij debugowanie), aby uruchomić aplikację.

  2. Jeśli projekt kompiluje i uruchamia się pomyślnie, aplikacja może monitować o uwierzytelnienie za pośrednictwem biblioteki ADAL za każdym razem, gdy zestaw SDK wywołuje metodę AcquireToken() . Jeśli buforowane poświadczenia już istnieją, nie zostanie wyświetlony monit o zalogowanie się i wyświetlenie listy etykiet, a następnie informacje o zastosowanej etykiecie i zmodyfikowanym pliku.

 Original content: My secure text
 Encrypted content: c?_hp???Q??+<?
 Decrypted content: My secure text
 Press a key to quit.