Snabbstart: Kryptera/dekryptera text med MIP SDK (C#)
Den här snabbstarten visar hur du använder fler MIP Protection SDK:er. Med någon av de skyddsmallar som du angav i föregående snabbstart använder du en skyddshanterare för att kryptera ad hoc-text. Klassen Skyddshanterare exponerar olika åtgärder för att tillämpa/ta bort skydd.
Förutsättningar
Om du inte redan har gjort det måste du slutföra följande krav innan du fortsätter:
- Slutför snabbstart: Lista först skyddsmallar (C#), som skapar en Visual Studio-startlösning, för att lista de skyddsmallar som är tillgängliga för autentiserade användare. Snabbstarten "Kryptera/dekryptera text" bygger på den föregående.
- Alternativt: Granska skyddshanterare i MIP SDK-begreppen .
Lägga till logik för att ange och hämta en skyddsmall
Lägg till logik för att kryptera ad hoc-text med hjälp av objektet Skyddsmotor.
Använd Solution Explorer och öppna .cs-filen i projektet som innehåller implementeringen av main()-metoden. Det är som standard samma namn som det projekt som innehåller det, som du angav när projektet skapades.
Mot slutet av brödtexten
Main()
, där du slutade i föregående snabbstart, infogar du följande kod://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();
Mot slutet av
Main()
hitta programmets avstängningsblock som skapades i den första snabbstarten och lägg till hanteringsraderna:// Application Shutdown publishingHandler = null; consumptionHandler = null; protectionEngine = null; protectionProfile = null; mipContext = null;
Ersätt platshållarvärdena i källkoden med hjälp av följande värden:
Platshållare Värde <sample-text> Exempeltexten som du vill kryptera, till exempel: My secure text
.<template-id> Ett mall-ID som kopierades från konsolens utdata i föregående snabbstart, till exempel: bb7ed207-046a-4caf-9826-647cff56b990
.
Skapa och testa programmet
Skapa och testa klientprogrammet.
Använd CTRL-SHIFT-B (Build Solution) för att skapa klientprogrammet. Om du inte har några byggfel använder du F5 (Starta felsökning) för att köra programmet.
Om projektet byggs och körs korrekt kan programmet fråga efter autentisering via ADAL varje gång SDK anropar din
AcquireToken()
metod. Om cachelagrade autentiseringsuppgifter redan finns uppmanas du inte att logga in och se listan med etiketter, följt av informationen på den tillämpade etiketten och den ändrade filen.
Original content: My secure text
Encrypted content: c?_hp???Q??+<?
Decrypted content: My secure text
Press a key to quit.