Guia de início rápido: criptografar/descriptografar texto usando MIP SDK (C#)
Este Guia de início rápido mostra como usar mais SDKs de proteção MIP. Usando um dos modelos de proteção listados no Guia de início rápido anterior, você usa um manipulador de proteção para criptografar texto ad hoc. A classe do manipulador de proteção expõe várias operações para aplicar/remover a proteção.
Pré-requisitos
Se ainda não o fez, certifique-se de que preenche os seguintes pré-requisitos antes de continuar:
- Guia de início rápido completo : liste 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 Guia de início rápido "Encriptar/Desencriptar" baseia-se no anterior.
- Opcionalmente: revise os manipuladores de proteção nos conceitos do MIP SDK .
Adicionar lógica para definir e obter um modelo de proteção
Adicione lógica para criptografar texto ad-hoc, usando o objeto Mecanismo de proteção.
Usando o Gerenciador de Soluções, abra o arquivo de .cs em seu projeto que contém a implementação do método Main()'. O padrão é o mesmo nome do projeto que o contém, que você especificou durante a criação do projeto.
No final do corpo, onde você parou no Guia de
Main()
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 localizar o bloco de desligamento do aplicativo criado no primeiro início rápido e adicionar as linhas do
Main()
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:
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 da saída do console no Guia de início rápido anterior, por exemplo: bb7ed207-046a-4caf-9826-647cff56b990
.
Crie e teste o aplicativo
Crie e teste seu aplicativo cliente.
Use CTRL-SHIFT-B (Build Solution) para criar seu aplicativo cliente. Se você não tiver erros de compilação, use F5 (Iniciar depuração) para executar seu aplicativo.
Se o seu projeto for compilado e executado com êxito, o aplicativo poderá solicitar autenticação via ADAL cada vez que o SDK chamar seu
AcquireToken()
método. Se as credenciais em cache já existirem, você não será solicitado a entrar e ver 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.