Rychlý start: Šifrování a dešifrování textu pomocí sady MIP SDK (C#)
V tomto rychlém startu se dozvíte, jak používat více sad MIP Protection SDK. Pomocí jedné ze šablon ochrany, které jste uvedli v předchozím rychlém startu, použijete obslužnou rutinu ochrany k šifrování ad hoc textu. Třída obslužné rutiny ochrany zveřejňuje různé operace pro použití nebo odebrání ochrany.
Předpoklady
Pokud jste to ještě neudělali, nezapomeňte před pokračováním dokončit následující požadavky:
- Úplný rychlý start: Nejprve vypíše šablony ochrany (C#), které sestaví úvodní řešení sady Visual Studio a zobrazí seznam šablon ochrany dostupných ověřeným uživatelům. Tento rychlý start "Šifrování/dešifrování textu" vychází z předchozího.
- Volitelně: Zkontrolujte obslužné rutiny ochrany v konceptech sady MIP SDK .
Přidání logiky pro nastavení a získání šablony ochrany
Přidejte logiku pro šifrování ad hoc textu pomocí objektu modulu ochrany.
Pomocí Průzkumník řešení otevřete soubor .cs v projektu, který obsahuje implementaci Metody Main(). Ve výchozím nastavení se použije stejný název jako projekt, který obsahuje, který jste zadali při vytváření projektu.
Na konec
Main()
textu, kde jste skončili v předchozím rychlém startu, vložte následující kód://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();
Na konec
Main()
hledání bloku vypnutí aplikace vytvořeného v prvním rychlém startu a přidání řádků obslužné rutiny:// Application Shutdown publishingHandler = null; consumptionHandler = null; protectionEngine = null; protectionProfile = null; mipContext = null;
Zástupné hodnoty ve zdrojovém kódu nahraďte následujícími hodnotami:
Zástupný symbol Hodnota <sample-text> Ukázkový text, který chcete zašifrovat, například: My secure text
.<template-id> ID šablony zkopírované z výstupu konzoly v předchozím rychlém startu, například: bb7ed207-046a-4caf-9826-647cff56b990
.
Sestavení a otestování aplikace
Sestavte a otestujte klientskou aplikaci.
K sestavení klientské aplikace použijte kombinaci kláves CTRL-SHIFT-B (řešení sestavení). Pokud nemáte žádné chyby sestavení, spusťte aplikaci pomocí klávesy F5 (spustit ladění).
Pokud se projekt sestaví a úspěšně spustí, aplikace může při každém volání vaší
AcquireToken()
metody vyžadovat ověření prostřednictvím knihovny ADAL. Pokud přihlašovací údaje uložené v mezipaměti už existují, nebudete vyzváni k přihlášení a zobrazí se seznam popisků a informace o použitém popisku a upraveném souboru.
Original content: My secure text
Encrypted content: c?_hp???Q??+<?
Decrypted content: My secure text
Press a key to quit.