Snabbstart: Kryptera och dekryptera text med hjälp av MIP SDK (C#)

Den här snabbstarten visar hur du använder fler MIP Protection SDK:er. Genom att använda en av de skyddsmallar som du angav i föregående snabbstart använder du en skyddshanterare för att kryptera ad hoc-text. Klassen Skyddshanterare exponerar olika åtgärder för att tillämpa och ta bort skydd.

Förutsättningar

Om du inte redan har gjort det måste du slutföra följande krav innan du fortsätter:

  • Slutför snabbstart: Lista skyddsmallar (C#) först, som skapar en startlösning Visual Studio för att lista de skyddsmallar som är tillgängliga för den autentiserade användaren. Snabbstarten "Kryptera och dekryptera text" bygger på den föregående.
  • Alternativt: Granska koncepten för skyddshanterare i MIP SDK.

Lägga till logik för att ange och hämta en skyddsmall

Lägg till logik för att kryptera ad hoc-text med hjälp av objektet Skyddsmotor.

  1. I Prieskumník riešení öppnar du filen .cs i projektet som innehåller implementeringen av Main() metoden. Det är som standard samma namn som det projekt som innehåller det, som du angav när projektet skapades.

  2. Mot slutet av brödtexten Main() , där du slutade i föregående snabbstart, infogar du följande 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 license
    var serializedPublishingLicense = publishingHandler.GetSerializedPublishingLicense();
    PublishingLicenseInfo plInfo = PublishingLicenseInfo.GetPublishingLicenseInfo(serializedPublishingLicense, mipContext);
    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. Mot slutet av Main()hittar du det block för programavstängning som den första snabbstarten skapade och lägger till hanteringsraderna:

    // Application Shutdown
    publishingHandler = null;
    consumptionHandler = null;
    protectionEngine = null;
    protectionProfile = null;
    mipContext = null;
    
  4. Ersätt platshållarvärdena i källkoden med hjälp av följande värden:

    Platshållare Värde
    <exempel-text> Exempeltexten som du vill kryptera, till exempel: My secure text.
    <template-id> Ett mall-ID som kopierades från konsolens utdata i föregående snabbstart, till exempel: bb7ed207-046a-4caf-9826-647cff56b990.

Skapa och testa programmet

Skapa och testa klientprogrammet.

  1. Använd Ctrl+Skift+B (bygglösning) för att skapa klientprogrammet. Om du inte har byggfel använder du F5 (Starta felsökning) för att köra programmet.

  2. Om projektet byggs och körs korrekt kan programmet fråga efter autentisering via MSAL varje gång SDK anropar din AcquireToken() metod. Om cachelagrade autentiseringsuppgifter redan finns uppmanar MSAL dig inte att logga in, och programmet visar listan med etiketter, följt av informationen på den tillämpade etiketten och den ändrade filen.

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

Nästa steg