Guida introduttiva: Crittografare/Decrittografare il testo con MIP SDK (C#)
Questa guida introduttiva illustra come usare più SDK di protezione MIP. Usando uno dei modelli di protezione elencati nell'argomento di avvio rapido precedente, si usa un gestore protezione per crittografare il testo ad hoc. La classe del gestore protezione espone varie operazioni per l'applicazione o la rimozione della protezione.
Prerequisiti
Se non è già stato fatto, assicurarsi di completare i prerequisiti seguenti prima di continuare:
- Completare Avvio rapido: Elencare prima i modelli di protezione (C#), che compila una soluzione visual Studio iniziale per elencare i modelli di protezione disponibili per l'utente autenticato. Questa guida introduttiva "Crittografa/Decrittografa testo" si basa su quella precedente.
- Facoltativamente: esaminare i gestori di protezione nei concetti di MIP SDK .
Aggiungere la logica per impostare e ottenere un modello di protezione
Aggiungere la logica per crittografare il testo ad hoc usando l'oggetto motore protezione.
Usando Esplora soluzioni, aprire il file con estensione cs nel progetto che contiene l'implementazione del metodo Main()'. Per impostazione predefinita, il nome del progetto che lo contiene è stato specificato durante la creazione del progetto.
Verso la fine del
Main()
corpo, in cui è stata interrotta la guida introduttiva precedente, inserire il codice seguente://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();
Verso la fine della ricerca del blocco di arresto dell'applicazione
Main()
creato nella prima guida introduttiva e aggiungere le righe del gestore:// Application Shutdown publishingHandler = null; consumptionHandler = null; protectionEngine = null; protectionProfile = null; mipContext = null;
Sostituire i valori segnaposto nel codice sorgente usando i valori seguenti:
Segnaposto Valore <sample-text> Testo di esempio da crittografare, ad esempio: My secure text
.<template-id> ID modello copiato dall'output della console nell'argomento di avvio rapido precedente, ad esempio: bb7ed207-046a-4caf-9826-647cff56b990
.
Compilare e testare l'applicazione
Compilare e testare l'applicazione client.
Usare CTRL-MAIUSC-B (Compila soluzione) per compilare l'applicazione client. Se non sono presenti errori di compilazione, usare F5 (Avvia debug) per eseguire l'applicazione.
Se il progetto viene compilato ed eseguito correttamente, l'applicazione potrebbe richiedere l'autenticazione tramite ADAL ogni volta che l'SDK chiama il
AcquireToken()
metodo. Se le credenziali memorizzate nella cache esistono già, non verrà richiesto di accedere e visualizzare l'elenco delle etichette, seguite dalle informazioni sull'etichetta applicata e sul file modificato.
Original content: My secure text
Encrypted content: c?_hp???Q??+<?
Decrypted content: My secure text
Press a key to quit.