IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

BouncyCastle C# (Geliştiriciler için Nasıl Çalışır)

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Jacob Mellor
Updated: 19 Temmuz 2026

BouncyCastle C#, .NET geliştiricileri için geniş bir kriptografik algoritma ve araç seçeneği sunan kapsamlı bir kütüphanedir. Bu kılavuz, Bouncy Castle'a temel bir giriş yapmayı, güvenlik sağlayıcısı olarak yeteneklerini vurgulamayı ve günlük kullanım için pratik örnekler sunmayı amaçlar. Ayrıca, bunu IronPDF .NET PDF Kütüphanesi ile nasıl kullanabileceğimizi öğreneceğiz.

Bouncy Castle'a Giriş

Bouncy Castle, kriptografik güvenlik alanında güçlü ve çok yönlü bir kütüphane olarak öne çıkar. Avustralya'da kayıtlı bir hayır kurumu projesidir, Java ve C# için yüksek kaliteli güvenlik hizmetleri sağlamayı amaçlar. Kütüphane, yaygın kullanımı ve katkıyı teşvik eden MIT X Consortium Lisansı'na dayanan bir lisans altında korunmaktadır.

Bouncy Castle'ın Amacını Anlamak

Bouncy Castle, geniş bir kriptografik algoritma yelpazesi sunan bir güvenlik sağlayıcısı olarak hizmet verir. Temel şifrelemeden karmaşık dijital imzalara kadar çeşitli güvenlik ihtiyaçlarını karşılayan çok yönlülüğü bulunur. Başlangıç seviyesinde, Bouncy Castle'ın kapsamını anlamak, projelerinizde etkili şekilde uygulamak için anahtardır.

Getting Started with Bouncy Castle in C#

C#'ta Bouncy Castle uygulaması, ortamı kurma ve temel bileşenlerini anlama ile başlar.

Kurulum

Kütüphaneyi İndirin: Başlamak için, resmi Bouncy Castle Web Sitesinden Bouncy Castle paketinin son sürümünü indirin. Projenizin ihtiyaçlarına uygun doğru sürümü seçtiğinizden emin olun.

Projenize Dahil Edin: İndirdikten sonra, Bouncy Castle'ı C# projenize entegre edin. Bu genellikle kütüphaneyi proje ayarlarınıza bir referans olarak eklemeyi içerir.

NuGet Paket Yöneticisi'ni kullanarak 'Bouncycastle' araması yaparak indirebilir ve kurabilirsiniz.

BouncyCastle C# (How It Works For Developer): Figure 1 - Download and install Bouncy Castle using NuGet Package Manager by searching "Bouncycastle" in the search bar of NuGet Package Manager

Temel Şifreleme Örneği

Bu örnekte, Bouncy Castle ile C#'ta AES (Gelişmiş Şifreleme Standardı) kullanarak basit bir şifreleme senaryosunu göstereceğim.

using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Crypto.Engines;
using Org.BouncyCastle.Crypto.Generators;
using Org.BouncyCastle.Crypto.Modes;
using Org.BouncyCastle.Crypto.Parameters;
using Org.BouncyCastle.Security;
using System.Text;

public class SimpleEncryption
{
    /// <summary>
    /// Encrypts data using AES encryption with a given password.
    /// </summary>
    /// <param name="message">The message to encrypt.</param>
    /// <param name="password">The password for key derivation.</param>
    /// <returns>The encrypted message as a byte array.</returns>
    public static byte[] EncryptData(string message, string password)
    {
        // Generate a random salt
        var salt = new byte[8];
        new SecureRandom().NextBytes(salt);

        // Derive key and IV from the password and salt
        Pkcs5S2ParametersGenerator generator = new Pkcs5S2ParametersGenerator();
        generator.Init(PbeParametersGenerator.Pkcs5PasswordToBytes(password.ToCharArray()), salt, 1000);
        ParametersWithIV keyParam = (ParametersWithIV)generator.GenerateDerivedMacParameters(256 + 128);

        // Create AES cipher in CBC mode with PKCS7 padding
        var cipher = new PaddedBufferedBlockCipher(new CbcBlockCipher(new AesEngine()));
        cipher.Init(true, keyParam);

        // Convert message to byte array and encrypt
        byte[] inputBytes = Encoding.UTF8.GetBytes(message);
        byte[] outputBytes = new byte[cipher.GetOutputSize(inputBytes.Length)];
        int length = cipher.ProcessBytes(inputBytes, 0, inputBytes.Length, outputBytes, 0);
        cipher.DoFinal(outputBytes, length);

        return outputBytes;
    }
}

Bu kod parçacığı, Bouncy Castle'ın kriptografik kütüphanelerini kullanarak nasıl temel bir şifreleme yöntemi oluşturabileceğinizi gösterir. Bu yöntemi kullanmak için, şifrelemek istediğiniz mesajı ve bir şifreyi EncryptData ile çağırırsınız. Örneğin:

string message = "Hello, this is a test message!";
string password = "StrongPassword123";
byte[] encryptedMessage = SimpleEncryption.EncryptData(message, password);
Console.WriteLine("Original Message: " + message);
Console.WriteLine("Encrypted Message: " + BitConverter.ToString(encryptedMessage));

Bu örnek oldukça temel düzeydedir ve bir giriş niteliğindedir. Gerçek dünya uygulamalarında, daha sağlam uygulamalar düşünmelisiniz, örneğin şifrelenen verilerle birlikte tuz ve IV saklama ve şifreleme işlemi sırasında meydana gelebilecek istisnaları yönetme gibi.

BouncyCastle C# (Geliştirici İçin Nasıl Çalışır): Şekil 2 - Konsol Çıkışı

Gelişmiş Kullanım ve Özelleştirme

Bouncy Castle, temel işlevlerle sınırlı değildir. Özelleştirme imkanı sunar ve gelişmiş kriptografik algoritmaları destekler.

NTRU Prime ve Diğer Gelişmiş Algoritmalar

Bouncy Castle, gelişmiş NTRU Prime dahil olmak üzere çeşitli algoritmalar için destek içerir. Bu, geliştiricilere, özel ihtiyaçları için en uygun algoritmayı seçme esnekliği sağlar.

İstisna Yönetimi ve Güvenlik En İyi Uygulamaları

Kriptografik uygulamalarda uygun istisna yönetimi kritik öneme sahiptir. Bouncy Castle'ın yöntemleri istisnalar üretebilir ve bunları doğru bir şekilde yönetmek, sağlam ve güvenli uygulamalar sağlar.

IronPDF ile Bouncy Castle'ı Entegre Etme

BouncyCastle C# (Geliştirici İçin Nasıl Çalışır): Şekil 3 - IronPDF for .NET: C# PDF Kütüphanesi

IronPDF, güvenlik sağlamak için Bouncy Castle'ın kriptografik yetenekleri kullanılarak güvence altına alınabilir PDF belgeleri ile çalışma işlevselliği sunar. İşte bu iki güçlü kütüphaneyi nasıl entegre edebileceğiniz:

IronPDF'nin öne çıkan özelliği, tüm yerleşimleri ve stilleri koruyarak HTML'yi PDF'ye dönüştürme becerileridir. Web içeriğini PDF'lere dönüştürür, raporlar, faturalar ve belgeler için uygundur. HTML dosyalarını, URL'leri ve HTML dizgilerini kesintisiz bir şekilde PDF'lere dönüştürebilirsiniz.

IronPDF ile başlama

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}

NuGet Paket Yöneticisi Kullanarak Kurulum

IronPDF'yi Bouncy Castle C# projenize NuGet Paket Yöneticisi kullanarak entegre etmek için bu adımları izleyin:

  1. Visual Studio'yu açın ve çözücülerde projenize sağ tıklayın.
  2. Bağlam menüsünden "NuGet paketlerini yönet…" seçeneğini seçin.
  3. Gözat sekmesine gidin ve IronPDF arayın.
  4. Arama sonuçlarından IronPDF kütüphanesini seçin ve yükle düğmesine tıklayın.
  5. Herhangi bir lisans anlaşması istemini kabul edin.

Package Manager Console aracılığıyla projenize IronPDF eklemek isterseniz, Package Manager Console'da aşağıdaki komutu çalıştırın:

PM > Install-Package IronPdf

Bu, IronPDF'yi projenize getirip kuracaktır.

NuGet Web Sitesini Kullanarak Kurulum

IronPDF'nin özellikleri, uyumluluğu ve ek indirme seçenekleri dahil olmak üzere detaylı bir genel bakış için IronPDF sayfasını https://www.nuget.org/packages/IronPdf adresindeki NuGet web sitesinde ziyaret edin.

DLL Kullanarak Kurulum

Alternatif olarak, IronPDF'yi DLL dosyasını kullanarak doğrudan projenize dahil edebilirsiniz. DLL içeren ZIP dosyasını bu IronPDF Doğrudan İndirme bağlantısından indirin. Açın ve DLL'i projenize dahil edin.

IronPDF ile PDF Oluşturma

Öncelikle, IronPDF kullanarak Basit bir PDF Belgesi Oluşturalım:

using IronPdf;

public class PdfGenerator
{
    /// <summary>
    /// Creates a simple PDF from HTML content.
    /// </summary>
    /// <param name="filePath">The file path to save the PDF.</param>
    /// <param name="content">The HTML content to render as PDF.</param>
    public static void CreateSimplePdf(string filePath, string content)
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(content);
        pdf.SaveAs(filePath);
    }
}

Bu kodda, IronPDF'nin ChromePdfRenderer sınıfını kullanarak HTML içeriğini PDF olarak işliyor ve bir dosyaya kaydediyoruz.

Bouncy Castle ile PDF Şifreleme

PDF oluşturduktan sonra, Bouncy Castle kullanarak şifreleyebiliriz. Burada, PDF dosyalarını işlemek için EncryptData yöntemini değiştireceğiz:

using System.IO;
using System.Text;

// ... [Previous Bouncy Castle using statements]

public class PdfEncryption
{
    /// <summary>
    /// Encrypts a PDF file using AES encryption.
    /// </summary>
    /// <param name="inputFilePath">The path to the input PDF file.</param>
    /// <param name="outputFilePath">The path to save the encrypted PDF file.</param>
    /// <param name="password">The password used for encryption.</param>
    public static void EncryptPdfFile(string inputFilePath, string outputFilePath, string password)
    {
        // Read the PDF file
        byte[] pdfBytes = File.ReadAllBytes(inputFilePath);

        // Encrypt the PDF bytes
        byte[] encryptedBytes = SimpleEncryption.EncryptData(Encoding.UTF8.GetString(pdfBytes), password);

        // Write the encrypted bytes to a new file
        File.WriteAllBytes(outputFilePath, encryptedBytes);
    }
}

Bu yöntemde, PDF dosyasını byte olarak okuyor, bu byte'ları önceden tanımlanmış SimpleEncryption sınıfı ile şifreliyor ve ardından şifrelenmiş byte'ları yeni bir dosyaya yazıyoruz.

Sonuç

Sonuç olarak, Bouncy Castle C# ve IronPDF kombinasyonu, .NET uygulamalarında PDF belgeleri oluşturma ve güvence altına almak için bir çözüm sunar. Bouncy Castle, veriyi güvence altına almak için gerekli kriptografik araçları sağlarken, IronPDF PDF oluşturma ve düzenleme kolaylığı getirir. Bu entegrasyon, yüksek seviyede belge güvenliği ve gizliliği gerektiren senaryolarda özellikle değerlidir.

IronPDF'yi keşfetmekle ilgilenenler için kütüphane, geliştiricilerin özelliklerini denemesi ve değerlendirmesi için ücretsiz bir deneme sürümü sunar. IronPDF'yi üretim ortamınıza entegre etmeye karar verirseniz, lisans bilgileri ve seçenekleri mevcuttur.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Teknoloji Direktörü

Jacob Mellor, Iron Software'de Baş Teknoloji Yöneticisidir ve C# PDF teknolojisinde öncü bir mühendisdir. Iron Software'ın ana kod tabanının ilk geliştiricisi olarak, CEO Cameron Rimington ile birlikte şirketin ürün mimarisini 50'den fazla kişilik bir şirkete dönüştürmüştür ve NASA, Tesla ve dünya genelindeki devlet kurumlarına hizmet etmektedir.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez