Sdílet prostřednictvím


Rychlý start: Šifrování a dešifrování textu pomocí sady MIP SDK (C#)

V tomto rychlém startu se dozvíte, jak používat více sad MIP Protection SDK. Pomocí jedné ze šablon ochrany, které jste uvedli v předchozím rychlém startu, použijete obslužnou rutinu ochrany k šifrování ad hoc textu. Třída obslužné rutiny ochrany zveřejňuje různé operace pro použití nebo odebrání ochrany.

Předpoklady

Pokud jste to ještě neudělali, nezapomeňte před pokračováním dokončit následující požadavky:

Přidání logiky pro nastavení a získání šablony ochrany

Přidejte logiku pro šifrování ad hoc textu pomocí objektu modulu ochrany.

  1. Pomocí Průzkumník řešení otevřete soubor .cs v projektu, který obsahuje implementaci Metody Main(). Ve výchozím nastavení se použije stejný název jako projekt, který obsahuje, který jste zadali při vytváření projektu.

  2. Na konec Main() textu, kde jste skončili v předchozím rychlém startu, vložte následující kód:

    //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. Na konec Main() hledání bloku vypnutí aplikace vytvořeného v prvním rychlém startu a přidání řádků obslužné rutiny:

    // Application Shutdown
    publishingHandler = null;
    consumptionHandler = null;
    protectionEngine = null;
    protectionProfile = null;
    mipContext = null;
    
  4. Zástupné hodnoty ve zdrojovém kódu nahraďte následujícími hodnotami:

    Zástupný symbol Hodnota
    <sample-text> Ukázkový text, který chcete zašifrovat, například: My secure text.
    <template-id> ID šablony zkopírované z výstupu konzoly v předchozím rychlém startu, například: bb7ed207-046a-4caf-9826-647cff56b990.

Sestavení a otestování aplikace

Sestavte a otestujte klientskou aplikaci.

  1. K sestavení klientské aplikace použijte kombinaci kláves CTRL-SHIFT-B (řešení sestavení). Pokud nemáte žádné chyby sestavení, spusťte aplikaci pomocí klávesy F5 (spustit ladění).

  2. Pokud se projekt sestaví a úspěšně spustí, aplikace může při každém volání vaší AcquireToken() metody vyžadovat ověření prostřednictvím knihovny ADAL. Pokud přihlašovací údaje uložené v mezipaměti už existují, nebudete vyzváni k přihlášení a zobrazí se seznam popisků a informace o použitém popisku a upraveném souboru.

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