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

En este inicio rápido se muestra cómo usar más de los SDK de MIP Protection. Mediante una de las plantillas de protección que aparecen en el inicio rápido anterior, se usa un controlador de protección para cifrar texto ad hoc. La clase de controlador de protección expone varias operaciones para aplicar y 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. En Explorador de soluciones, abra el archivo .cs en el proyecto que contiene la implementación del Main() método . El valor predeterminado es el mismo nombre que el proyecto que lo contiene, que especificó durante la creación del proyecto.

  2. Hacia el final del Main() cuerpo, donde dejó 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 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. Hacia el final de Main(), busque el bloque de cierre de la aplicación que creó la primera guía de inicio rápido y agregue las líneas del 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 mediante los valores siguientes:

    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. Utilice Ctrl+Mayús+B (Compilar solución) para compilar su aplicación cliente. Si no tiene errores de compilación, use F5 (Iniciar depuración) para ejecutar la aplicación.

  2. Si el proyecto se compila y se ejecuta correctamente, es posible que la aplicación solicite autenticación a través de MSAL cada vez que el SDK llame al AcquireToken() método . Si ya existen credenciales almacenadas en caché, MSAL no le pide que inicie sesión y la aplicación muestre 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.

Pasos siguientes