Dela via


Snabbstart: Kryptera/dekryptera text med MIP SDK (C#)

Den här snabbstarten visar hur du använder fler MIP Protection SDK:er. Med någon 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/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:

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. Använd Solution Explorer och öppna .cs-filen 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 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. Mot slutet av Main() hitta programmets avstängningsblock som skapades i den första snabbstarten och lägg 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
    <sample-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-SHIFT-B (Build Solution) för att skapa klientprogrammet. Om du inte har några 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 ADAL varje gång SDK anropar din AcquireToken() metod. Om cachelagrade autentiseringsuppgifter redan finns uppmanas du inte att logga in och se 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.