Hızlı Başlangıç: MIP SDK'sı kullanarak metin şifreleme ve şifresini çö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şleyici sınıfı, koruma uygulamak ve 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 bir başlangıç Visual Studio çözümü oluşturan önce koruma şablonlarını (C#) listeleyin. Bu "Metni şifrele ve şifresini çöz" 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'da, projenizde yönteminin uygulanmasını Main() 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 bıraktığınız yer olan Main() gövdesinin sonuna doğru 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, 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. Main() etiketinin sonuna 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 ş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 (Derleme Çözümü) tuşlarını kullanın. Derleme hataları 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, MSAL oturum açmanızı istemez ve uygulama etiket listesini ve ardından uygulanan etiket ve değiştirilen dosyadaki bilgileri gösterir.

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

Sonraki Adımlar