Guida introduttiva: Crittografare e decrittografare il testo con MIP SDK (C#)

Questa guida introduttiva illustra come usare più SDK di protezione MIP. Usando uno dei modelli di protezione elencati nell'argomento di avvio rapido precedente, si usa un gestore protezione per crittografare il testo ad hoc. La classe del gestore protezione espone varie operazioni per l'applicazione e la rimozione della protezione.

Prerequisiti

Se non è già stato fatto, assicurarsi di completare i prerequisiti seguenti prima di continuare:

  • Completare la guida introduttiva: Elencare prima i modelli di protezione (C#), che compila una soluzione di Visual Studio iniziale per elencare i modelli di protezione disponibili per l'utente autenticato. Questa guida introduttiva rapida "Crittografare e decrittografare testo" si basa su quella precedente.
  • Facoltativamente, esamina i concetti relativi ai gestori di protezione nel MIP SDK.

Aggiungere la logica per impostare e ottenere un modello di protezione

Aggiungere la logica per crittografare il testo ad hoc utilizzando l'oggetto motore di protezione.

  1. In Esplora soluzioni aprire il file .cs nel progetto che contiene l'implementazione del Main() metodo . Per impostazione predefinita, assume lo stesso nome del progetto che lo contiene, specificato durante la creazione del progetto.

  2. Verso la fine del corpo Main(), nel punto in cui ti eri fermato nella guida rapida precedente, inserisci il codice seguente:

    //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. Verso la fine di Main(), individua il blocco di arresto dell'applicazione creato nella prima guida introduttiva e aggiungi le righe del gestore:

    // Application Shutdown
    publishingHandler = null;
    consumptionHandler = null;
    protectionEngine = null;
    protectionProfile = null;
    mipContext = null;
    
  4. Sostituire i valori segnaposto nel codice sorgente usando i valori seguenti:

    Segnaposto Valore
    <testo-esempio> Testo di esempio da crittografare, ad esempio: My secure text.
    <template-id> ID modello copiato dall'output della console nell'avvio rapido precedente, ad esempio: bb7ed207-046a-4caf-9826-647cff56b990.

Compilare e testare l'applicazione

Compilare e testare l'applicazione client.

  1. Usare CTRL+MAIUSC+B (Compila soluzione) per compilare l'applicazione client. Se non si verificano errori di compilazione, usare F5 (Avvia debug) per eseguire l'applicazione.

  2. Se il progetto viene compilato ed eseguito correttamente, l'applicazione potrebbe richiedere l'autenticazione tramite MSAL ogni volta che l'SDK chiama il AcquireToken() metodo. Se esistono già credenziali memorizzate nella cache, MSAL non richiede l'accesso e l'applicazione visualizza l'elenco delle etichette, seguito dalle informazioni sull'etichetta applicata e sul file modificato.

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

Passaggi successivi