Compartir a través de


Inicio rápido: Cifrado y descifrado de texto mediante el SDK de MIP (C#)

En esta guía rápida se muestra cómo usar más de los SDKs de protección de MIP. Con una de las plantillas de protección que enumeraste en la Guía Rápida anterior, utilizas un controlador de protección para cifrar texto ad hoc. La clase Controlador de protección expone varias operaciones para aplicar o quitar la protección.

Prerrequisitos

Si aún no lo ha hecho, asegúrese de completar los siguientes requisitos previos antes de continuar:

Añade lógica para establecer y obtener una plantilla de protección

Agregue lógica para cifrar texto ad hoc mediante el objeto del motor de protección.

  1. Con el Explorador de soluciones, abra el archivo .cs en el proyecto que contiene la implementación del método Main()' . El valor predeterminado es el mismo nombre que el proyecto que lo contiene, que especificó durante la creación del proyecto.

  2. Hacia la parte final del cuerpo de Main(), donde lo ha dejado en el inicio rápido anterior, inserte el código siguiente:

    //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();
    
    
  3. Hacia el final de Main(), busque el bloque de cierre de la aplicación creado en el primer inicio rápido y agregue líneas de controlador:

    // Application Shutdown
    publishingHandler = null;
    consumptionHandler = null;
    protectionEngine = null;
    protectionProfile = null;
    mipContext = null;
    
  4. Reemplace los valores de marcador de posición en el código fuente con los siguientes valores:

    Marcador de posición Importancia
    <texto de muestra> El texto de ejemplo que desea cifrar, por ejemplo: My secure text.
    <identificador de plantilla> Identificador de plantilla, copiado de la salida de la consola en el inicio rápido anterior, por ejemplo: bb7ed207-046a-4caf-9826-647cff56b990.

Crear y probar la aplicación

Compile y pruebe la aplicación cliente.

  1. Utiliza CTRL-SHIFT-B (Compilar Solución) para compilar tu aplicación cliente. Si no tiene errores de compilación, use F5 (Iniciar depuración) para ejecutar la aplicación.

  2. Si tu proyecto se compila y ejecuta correctamente, la aplicación podría solicitar autenticación a través de ADAL cada vez que el SDK llame a tu método AcquireToken(). Si ya existen credenciales almacenadas en caché, no se le pedirá que inicie sesión y vea la lista de etiquetas, seguida de la información sobre la etiqueta aplicada y el archivo modificado.

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