Hızlı Başlangıç: MIP SDK'sı kullanarak metin şifreleme/şifre çözme (C#)

Bu Hızlı Başlangıçta, MIP Koruması SDK'larının daha fazlasını nasıl kullanacağınız gösterilmektedir. Önceki Hızlı Başlangıçta listelediğiniz koruma şablonlarından birini kullanarak Geçici metni şifrelemek için bir Koruma işleyicisi kullanırsınız. Koruma işleyicisi sınıfı, korumayı uygulamak/kaldırmak için çeşitli işlemleri kullanıma sunar.

Önkoşullar

Henüz yapmadıysanız devam etmeden önce aşağıdaki önkoşulları tamamladığınızdan emin olun:

  • Tam Hızlı Başlangıç: Kimliği doğrulanmış kullanıcının kullanabileceği koruma şablonlarını listelemek için ilk olarak bir başlangıç Visual Studio çözümü oluşturan koruma şablonlarını (C#) listeleyin. Bu "Şifreleme/Şifre Çözme metni" Hızlı Başlangıcı öncekini temel alır.
  • İsteğe bağlı olarak: MIP SDK kavramlarındaki Koruma işleyicilerini gözden geçirin.

Koruma şablonunu ayarlamak ve almak için mantık ekleyin.

Koruma altyapısı nesnesini kullanarak geçici metni şifrelemek için mantık ekleyin.

  1. Çözüm Gezgini'ni kullanarak projenizde Main()' yönteminin uygulamasını içeren .cs dosyasını açın. Proje oluşturma sırasında belirlediğiniz isim, varsayılan olarak projeyle aynı olup onu içeren yapıdadır.

  2. Önceki Hızlı Başlangıçta devam ettiğiniz yerin bulunduğu Main() gövdenin sonuna aşağıdaki kodu ekleyin:

    //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);
    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. Main()'nin sonlarına doğru ilk hızlı başlangıçta oluşturulan uygulama kapatma bloğunu bulun ve işleyici satırlarını ekleyin:

    // Application Shutdown
    publishingHandler = null;
    consumptionHandler = null;
    protectionEngine = null;
    protectionProfile = null;
    mipContext = null;
    
  4. Aşağıdaki değerleri kullanarak kaynak koddaki yer tutucu değerlerini değiştirin:

    Yer tutucu Değer
    <örnek metin> Şifrelemek istediğiniz örnek metin, örneğin: My secure text.
    <template-id> Önceki Hızlı Başlangıç'ta konsol çıkışından kopyalanan bir şablon kimliği, örneğin: bb7ed207-046a-4caf-9826-647cff56b990.

Uygulamayı derleme ve test etme

İstemci uygulamanızı derleyin ve test edin.

  1. İstemci uygulamanızı derlemek için CTRL-SHIFT-B (Çözümü Derle) kullanın. Derleme hatanız yoksa, uygulamanızı çalıştırmak için F5 (Hata ayıklamayı başlat) kullanın.

  2. Projeniz başarıyla derlenip çalıştırılırsa, SDK yönteminizi AcquireToken() her çağırdığında uygulama MSAL aracılığıyla kimlik doğrulaması isteyebilir. Önbelleğe alınmış kimlik bilgileri zaten varsa, oturum açmanız istenmez ve doğrudan etiketler listesini görebilir, ardından uygulanan etiketle ilgili bilgileri ve değiştirilen dosyayı inceleyebilirsiniz.

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