Início Rápido: criptografar/descriptografar texto usando o SDK da PIM (C#)
Este guia de início rápido mostra como usar mais dos SDKs de proteção do 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 de Proteção expõe várias operações para a aplicação/remoção de proteção.
Pré-requisitos
Conclua os seguintes pré-requisitos antes de continuar, caso ainda não tenha feito isso:
- Conclua o Início Rápido: Listar modelos de proteção (C#) primeiro, que cria uma solução inicial do Visual Studio, para listar os modelos de proteção disponíveis para o usuário autenticado. Este Início Rápido "Criptografar/Descriptografar texto" foi criado no anterior.
- Opcionalmente: examine os conceitos de manipuladores de proteção no SDK do MIP.
Adicionar lógica para definir e obter um modelo de proteção
Adicione lógica para criptografar texto ad hoc, usando o objeto do Mecanismo de proteção.
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 que o projeto em que está contido, que você especificou durante a criação do projeto.
No final do corpo de
Main()
, onde você parou no Início Rápido 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 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();
No final de
Main()
, encontre o bloco de desligamento do aplicativo criado no primeiro Início Rápido e adicione as linhas do manipulador:// Application Shutdown publishingHandler = null; consumptionHandler = null; protectionEngine = null; protectionProfile = null; mipContext = null;
Substitua os valores de espaço reservado no código-fonte usando os seguintes valores:
Espaço reservado Valor <sample-text> 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 o aplicativo cliente.
Use CTRL-SHIFT-B (Compilar solução) para compilar o aplicativo cliente. Se não houver erros de build, use F5 (Iniciar depuração) para executar o aplicativo.
Se o projeto for criado e executado com sucesso, o aplicativo poderá solicitar a autenticação por meio da ADAL sempre que o SDK chamar o método
AcquireToken()
. Se já houver credenciais armazenadas em cache, não será solicitado que você entre e veja a lista de rótulos, seguida 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.