Início rápido: Encriptar e desencriptar texto usando MIP SDK (C#)

Este guia de introdução rápida mostra-lhe como utilizar mais SDKs de Proteção MIP. Ao usar um dos modelos de proteção que mencionaste no quickstart anterior, utilizas um gestor de Proteção para encriptar texto ad hoc. A classe de manipulador de proteção expõe várias operações para aplicar e remover proteção.

Pré-requisitos

Se ainda não o fez, certifique-se de que preenche os seguintes pré-requisitos antes de continuar:

Adicionar lógica para definir e obter um modelo de proteção

Adicionar lógica para encriptar texto ad hoc usando o objeto Protection engine.

  1. No Explorador de Soluções, abre o ficheiro .cs no teu projeto que contém a implementação do Main() método. Por padrão, tem o mesmo nome do projeto que o contém, que especificou durante a criação do projeto.

  2. No final do Main() corpo, onde parou no quickstart anterior, insira o seguinte código:

    //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. Perto do final de Main(), encontre o bloco de encerramento da aplicação que o primeiro quickstart criou e adicione as linhas do handler:

    // Application Shutdown
    publishingHandler = null;
    consumptionHandler = null;
    protectionEngine = null;
    protectionProfile = null;
    mipContext = null;
    
  4. Substitua os valores provisórios no código-fonte usando os seguintes valores:

    Marcador de posição Valor
    <texto-exemplo> O texto de exemplo que você gostaria de criptografar, por exemplo: My secure text.
    <ID do modelo> Um ID de modelo copiado a partir da saída da consola no início rápido anterior, por exemplo: bb7ed207-046a-4caf-9826-647cff56b990.

Crie e teste o aplicativo

Crie e teste seu aplicativo cliente.

  1. Use Ctrl+Shift+B (Build Solution) para construir a sua aplicação cliente. Se não tiveres erros de compilação, usa F5 (Start debug) para correr a tua aplicação.

  2. Se o seu projeto for construído e executado com sucesso, a aplicação pode pedir autenticação através de MSAL sempre que o SDK chama o seu AcquireToken() método. Se as credenciais em cache já existirem, o MSAL não te pede para iniciar sessão, e a aplicação mostra a lista de etiquetas, seguida da informação na etiqueta aplicada e no ficheiro modificado.

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

Passos seguintes