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.

Ön koşullar

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

Koruma şablonu ayarlamak ve almak için mantık ekleme

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

  1. Çözüm Gezgini kullanarak projenizde Main()' yönteminin uygulamasını içeren .cs dosyasını açın. Varsayılan olarak, proje oluşturma sırasında belirttiğiniz, onu içeren projeyle aynı ada sahiptir.

  2. Önceki Hızlı Başlangıçta kaldığınız gövdenin sonuna Main() 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 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();
    
    
  3. Main() İlk 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 Derleme) 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 ADAL aracılığıyla kimlik doğrulaması isteyebilir. Önbelleğe alınmış kimlik bilgileri zaten varsa, oturum açmanız ve etiket listesini ve ardından uygulanan etiket ve değiştirilen dosyadaki bilgileri görmeniz istenmez.

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