Compartilhar via


Início Rápido: Criptografar/Descriptografar texto usando o SDK do MIP (C#)

Este Início Rápido mostra como usar mais SDKs de Proteção MIP. Usando um dos modelos de proteção listados no Início Rápido anterior, você usa um manipulador de proteção para criptografar texto ad hoc. A classe de manipulador Proteção expõe várias operações para aplicar/remover a proteção.

Pré-requisitos

Caso ainda não tenha feito isso, certifique-se de concluir os seguintes pré-requisitos antes de continuar:

  • Complete o Início Rápido: Listar modelos de proteção (C#) primeiro, que constrói uma solução inicial no Visual Studio, para listar os modelos de proteção disponíveis para o usuário autenticado. Este Início Rápido "Criptografar/Descriptografar texto" baseia-se no anterior.
  • Opcional: revise os conceitos de manipuladores de proteção no MIP SDK.

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

Adicione lógica para criptografar o texto ad hoc usando o objeto do mecanismo de proteção.

  1. Usando o Gerenciador de Soluções, abra o arquivo .cs em seu projeto que contém a implementação do método Main()'. Ele usa como padrão o mesmo nome do projeto que o contém, que você especificou durante a criação do projeto.

  2. Perto do final do Main() corpo, de onde você 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);
    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. No final do bloco de Main() desligamento do aplicativo criado no primeiro quickstart, adicione as linhas do manipulador:

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

    Placeholder Valor
    <exemplo de texto> O texto de exemplo que você gostaria de criptografar, por exemplo: My secure text.
    <template-id> Uma ID de modelo, copiada da saída do console no Início Rápido anterior, por exemplo: bb7ed207-046a-4caf-9826-647cff56b990.

Criar e testar o aplicativo

Crie e teste seu aplicativo cliente.

  1. Use CTRL-SHIFT-B (Build Solution) para criar seu aplicativo cliente. Se você não tiver erros de build, use F5 (Iniciar depuração) para executar seu aplicativo.

  2. Se o projeto for compilado e executado com êxito, o aplicativo poderá solicitar a autenticação via MSAL sempre que o SDK chamar seu AcquireToken() método. Se as credenciais armazenadas em cache já existirem, você não será solicitado a entrar e ver a lista de rótulos, seguido pelas informações sobre o rótulo aplicado e o arquivo modificado.

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