Rövid útmutató: Szöveg titkosítása/visszafejtése a MIP SDK használatával (C#)

Ez a rövid útmutató bemutatja, hogyan használhat több MIP Protection SDK-t. Az előző rövid útmutatóban felsorolt védelmi sablonok egyikével egy Védelmi kezelővel titkosíthatja az alkalmi szövegeket. A Védelmi kezelő osztály különböző műveleteket tesz elérhetővé a védelem alkalmazásához/eltávolításához.

Előfeltételek

Ha még nem tette meg, a folytatás előtt mindenképpen végezze el a következő előfeltételeket:

Logikai elem hozzáadása védelmi sablon beállításához és lekéréséhez

Adjon hozzá logikát az alkalmi szövegek titkosításához a Védelmi motor objektummal.

  1. A Megoldáskezelő használatával nyissa meg a Main() metódus implementálását tartalmazó .cs fájlt a projektben. Alapértelmezés szerint ugyanaz a név lesz, mint a projektet tartalmazó projekt, amelyet a projekt létrehozásakor adott meg.

  2. A törzs vége Main() felé, ahol az előző rövid útmutatóban abbahagyta, szúrja be a következő kódot:

    //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. Az első rövid útmutatóban létrehozott alkalmazásleállítási blokk megkeresésének Main() vége felé adja hozzá a kezelővonalakat:

    // Application Shutdown
    publishingHandler = null;
    consumptionHandler = null;
    protectionEngine = null;
    protectionProfile = null;
    mipContext = null;
    
  4. Cserélje le a helyőrző értékeket a forráskódban a következő értékekkel:

    Helyőrző Value
    <mintaszöveg> A titkosítandó mintaszöveg, például: My secure text.
    <sablonazonosító> Az előző rövid útmutatóban a konzol kimenetéből másolt sablonazonosító, például: bb7ed207-046a-4caf-9826-647cff56b990.

Az alkalmazás létrehozása és tesztelése

Hozza létre és tesztelje az ügyfélalkalmazást.

  1. Az ügyfélalkalmazás létrehozásához használja a CTRL-SHIFT-B (Build Solution) parancsot. Ha nincsenek buildelési hibái, használja az F5 (Hibakeresés indítása) lehetőséget az alkalmazás futtatásához.

  2. Ha a projekt sikeresen épül és fut, előfordulhat, hogy az alkalmazás az ADAL-on keresztüli hitelesítést kér minden alkalommal, amikor az SDK meghívja a metódustAcquireToken(). Ha a gyorsítótárazott hitelesítő adatok már léteznek, a rendszer nem fogja kérni, hogy jelentkezzen be, és tekintse meg a címkék listáját, majd az alkalmazott címkére és a módosított fájlra vonatkozó információkat.

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