Altbilgi içeriğine atla
.NET YARDıM

RandomNumberGenerator C#

Bazen, PDF belgeleri ile çalışırken, rastgele sayılar veya rastgele diziler üretmeniz gerektiğini düşünebilirsiniz. İster PDF şifrelemesi için rastgele sayılar veya şifreler üretmek, benzeri olmayan dosya adları oluşturmak, tahmin edilebilir dizilerden kaçınmak veya başka bir nedenle sayı üretmeniz gereksin, C# RandomNumberGenerator sınıfını kullanarak PDF üretimi ve düzenleme projelerinizi bir üst seviyeye çıkarabilirsiniz.

Random sınıfından oluşturulan temel bir rastgele nesneden farklı olarak, bu kriptografik rastgele sayı üreticisi, güvenli uygulamalardaki kriptografik işlemler için uygun olan kriptografik olarak güçlü rastgele değerler üretir.

Bu makalede, keşfedeceğiz:

  • RandomNumberGenerator nedir ve neden önemlidir.

  • Kriptografik amaçlar için rastgele sayılar, rastgele diziler ve diğer rastgele verileri oluşturmak amacıyla C#'de bir kriptografik rastgele sayı üreticisi nasıl kullanılır.

  • RandomNumberGenerator ile IronPDF'i entegre etmenin pratik örnekleri, üretilen sayılar ve diziler kullanılarak güvenli, benzeri olmayan PDF'ler oluşturma.

  • PDF uygulamalarınızın güvenliğini ve profesyonelliğini artırmak için ipuçları ve en iyi uygulamalar.

RandomNumberGenerator Sınıfı Nedir?

IronPDF entegrasyonuna geçmeden önce, RandomNumberGenerator'u özel kılanı kısaca gözden geçirelim.

  • System.Security.Cryptography ad alanının bir parçasıdır.

  • Kriptografik olarak güçlü rastgele değerler üretir, tipik Random sınıfından çok daha güvenlidir.

  • Önceden tahmin edilemezlik gerektiren senaryolar için idealdir; güvenli anahtarlar, tuzlar ve benzeri benzersiz tanımlayıcılar oluşturmak gibi.

  • AES-CTR DRBG, Fortuna veya işletim sistemi tarafından sağlanan CSPRNG'ler gibi Kriptografik algoritmalar kullanır. Tahmin edilebilirliğe karşı dirençli kılar.

  • Kriptografik anahtarlar oluşturma, şifre oluşturma, güvenli jetonlar, benzersiz doküman kimlikleri oluşturma gibi görevler için en iyi şekilde kullanılır.

Bu güç, işletim sisteminin altta yatan güvenli rastgele sayı üreticilerine dayanmaktan gelir, onu tahmin veya tersine mühendislik saldırılarına karşı dirençli kılar. Aynı tohum değeriyle aynı diziyi üretebilen sahte rastgele sayı üreteçlerinin aksine, bu sınıf gerçek rastgelelik ve kriptografik amaçlar için tasarlanmıştır.

Neden C#'nin Random Sınıfı Yerine RandomNumberGenerator Kullanılır?

Birçok geliştirici rastgele tamsayılar üretmek için C#'ın Random sınıfı ile başlar, fakat bu yüksek güvenlik gerektiren senaryolar için tasarlanmamıştır. Çıktısındaki desenler öngörülebilir, özellikle aynı tohum değeri veya sistem zamanı kullanıldığı takdirde, üretilen sayılar tahmin edilebilir. Bu, metodun değerleri aynı girişle tekrar eden basit modüler aritmetik işlemleri kullanarak üretmesinden kaynaklanır.

Buna karşılık, RandomNumberGenerator gerçek rastgele sayılar üretir, .NET Framework veya altta yatan işletim sistemindeki kriptografik rastgele sayı üreticilerinden türetilmiştir. Alt değer yanlılığı yoktur ve genellikle bir alt sınır (örneğin int minValue) ile bir özel üst sınır (örneğin int maxValue) arasında eşit dağılımı korumak için bir ihraç ve tekrar stratejisini kullanır. Aşağıdaki illüstrasyon zayıf bir RNG ile güvenli birini vurgular.

Weak vs. Secure RNG

IronPDF ile RandomNumberGenerator Kullanmanın Nedenleri

IronPDF, geliştiricilerin PDF belgeleri oluşturup, değiştirip güvence altına almasını sağlayan sağlam bir .NET PDF kütüphanesidir. Rastgeleliğin önemli olduğu yaygın kullanım senaryoları şunlardır:

  • Benzersiz Belgeler için Tanımlayıcılar: Takip veya doğrulama amacıyla PDF'lere kriptografik olarak güvenli kimlikler ekleyin.

  • Güvenli Filigranlar: Sahteciliği caydıran rastgele filigranlar veya kodlar yerleştirin.

  • Şifreleme Anahtarları veya Parolalar: PDF şifrelemesi için güvenli anahtarlar veya parolalar oluşturun.

  • Rastgele İçerik: PDF belgelerine doğruluk doğrulaması için rastgele, benzersiz jetonlar veya tuzlar ekleyin.

C# ile Güvenli Rastgele Veri Nasıl Üretilir

128-bit (16-bayt) güvenli bir rastgele token oluşturmanın basit bir örneği burada.

using System;
using System.Security.Cryptography;

public static string GenerateSecureToken(int size = 16)
{
    byte[] randomBytes = new byte[size];
    RandomNumberGenerator.Fill(randomBytes);
    return Convert.ToBase64String(randomBytes);
}
using System;
using System.Security.Cryptography;

public static string GenerateSecureToken(int size = 16)
{
    byte[] randomBytes = new byte[size];
    RandomNumberGenerator.Fill(randomBytes);
    return Convert.ToBase64String(randomBytes);
}
Imports System
Imports System.Security.Cryptography

Public Shared Function GenerateSecureToken(Optional ByVal size As Integer = 16) As String
	Dim randomBytes(size - 1) As Byte
	RandomNumberGenerator.Fill(randomBytes)
	Return Convert.ToBase64String(randomBytes)
End Function
$vbLabelText   $csharpLabel

Bu metod, bir güvenli bayt dizisi oluşturur ve bunu Base64 dizgesi olarak geri döner — birim testlerinde, dosya adlarında veya güvenli kimliklerde gömme veya izleme için mükemmel.

Pratik Örnek: PDF Belgelerine Benzersiz Belge Kimlikleri Ekleme

RandomNumberGenerator'un ve IronPDF'in gücünü birleştirerek, her sayfaya benzersiz, güvenli bir belge kimliği damgalanan bir PDF üretelim.

Adım 1: Güvenli Bir Belge Kimliği Oluştur

string GenerateDocumentId()
{
    byte[] idBytes = new byte[12]; // 96-bit ID
    RandomNumberGenerator.Fill(idBytes);
    return BitConverter.ToString(idBytes).Replace("-", "");
}
string GenerateDocumentId()
{
    byte[] idBytes = new byte[12]; // 96-bit ID
    RandomNumberGenerator.Fill(idBytes);
    return BitConverter.ToString(idBytes).Replace("-", "");
}
Private Function GenerateDocumentId() As String
	Dim idBytes(11) As Byte ' 96-bit ID
	RandomNumberGenerator.Fill(idBytes)
	Return BitConverter.ToString(idBytes).Replace("-", "")
End Function
$vbLabelText   $csharpLabel

Bu, 24 karakterlik bir onaltılık rastgele dize üretir (örneğin, "4F3A2C9B7D1E8F0A5B6C7D8E").

Adım 2: PDF'yi Oluştur ve Kimliği Damgala

using IronPdf;

void CreatePdfWithSecureId()
{
    var documentId = GenerateDocumentId();

    var renderer = new ChromePdfRenderer();

    // Add a custom footer with the document ID
    renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
    {
        HtmlFragment = $"<div style='text-align: center; font-size: 10px;'>Document ID: {documentId} - Generated on {DateTime.UtcNow:yyyy-MM-dd HH:mm:ss} UTC</div>",
        DrawDividerLine = true,
    };
    var pdf = renderer.RenderHtmlAsPdf($"<h1>Secure Document</h1><p>Document ID: {documentId}</p>");

    string outputPath = $"SecurePdf_{documentId}.pdf";
    pdf.SaveAs(outputPath);

    Console.WriteLine($"PDF saved as {outputPath}");
}What this Code Does:
using IronPdf;

void CreatePdfWithSecureId()
{
    var documentId = GenerateDocumentId();

    var renderer = new ChromePdfRenderer();

    // Add a custom footer with the document ID
    renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
    {
        HtmlFragment = $"<div style='text-align: center; font-size: 10px;'>Document ID: {documentId} - Generated on {DateTime.UtcNow:yyyy-MM-dd HH:mm:ss} UTC</div>",
        DrawDividerLine = true,
    };
    var pdf = renderer.RenderHtmlAsPdf($"<h1>Secure Document</h1><p>Document ID: {documentId}</p>");

    string outputPath = $"SecurePdf_{documentId}.pdf";
    pdf.SaveAs(outputPath);

    Console.WriteLine($"PDF saved as {outputPath}");
}What this Code Does:
Imports IronPdf

Private Sub CreatePdfWithSecureId()
	Dim documentId = GenerateDocumentId()

	Dim renderer = New ChromePdfRenderer()

	' Add a custom footer with the document ID
	renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter With {
		.HtmlFragment = $"<div style='text-align: center; font-size: 10px;'>Document ID: {documentId} - Generated on {DateTime.UtcNow:yyyy-MM-dd HH:mm:ss} UTC</div>",
		.DrawDividerLine = True
	}
	Dim pdf = renderer.RenderHtmlAsPdf($"<h1>Secure Document</h1><p>Document ID: {documentId}</p>")

	Dim outputPath As String = $"SecurePdf_{documentId}.pdf"
	pdf.SaveAs(outputPath)

	Console.WriteLine($"PDF saved as {outputPath}")
End Sub
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'What Me Code Does:
$vbLabelText   $csharpLabel
  • Kriptografik olarak güvenli, benzersiz bir belge kimliği için rastgele bir sayı üretir.

  • HTML'yi PDF'ye dönüştürerek bu kimliği gömü.

  • Her sayfaya belge kimliği ve zaman damgası ile bir altbilgi ekleyin.

  • Kolay takip için dosya adında kimliği kullanarak PDF'yi kaydedin.

Tam Çalışan Kod Örneği

using IronPdf;
using IronPdf.Editing;
using System;
using System.Security.Cryptography;

class Program
{
    public static void Main(string[] args)
    {
        // Create an instance of Program to run non-static methods
        var program = new Program();
        program.CreatePdfWithSecureId()
    }

    string GenerateDocumentId()
    {
        byte[] idBytes = new byte[12]; // 96-bit ID
        RandomNumberGenerator.Fill(idBytes);
        return BitConverter.ToString(idBytes).Replace("-", "");
    }

    void CreatePdfWithSecureId()
    {
        var documentId = GenerateDocumentId();

        var renderer = new ChromePdfRenderer();
        // Add a custom footer with the document ID
        renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
        {
            HtmlFragment = $"<div style='text-align: center; font-size: 10px;'>Document ID: {documentId} - Generated on {DateTime.UtcNow:yyyy-MM-dd HH:mm:ss} UTC</div>",
            DrawDividerLine = true,
        };
        var pdf = renderer.RenderHtmlAsPdf($"<h1>Secure Document</h1><p>Document ID: {documentId}</p>");

        string outputPath = $"SecurePdf_{documentId}.pdf";
        pdf.SaveAs(outputPath);

        Console.WriteLine($"PDF saved as {outputPath}");
    }
}
using IronPdf;
using IronPdf.Editing;
using System;
using System.Security.Cryptography;

class Program
{
    public static void Main(string[] args)
    {
        // Create an instance of Program to run non-static methods
        var program = new Program();
        program.CreatePdfWithSecureId()
    }

    string GenerateDocumentId()
    {
        byte[] idBytes = new byte[12]; // 96-bit ID
        RandomNumberGenerator.Fill(idBytes);
        return BitConverter.ToString(idBytes).Replace("-", "");
    }

    void CreatePdfWithSecureId()
    {
        var documentId = GenerateDocumentId();

        var renderer = new ChromePdfRenderer();
        // Add a custom footer with the document ID
        renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
        {
            HtmlFragment = $"<div style='text-align: center; font-size: 10px;'>Document ID: {documentId} - Generated on {DateTime.UtcNow:yyyy-MM-dd HH:mm:ss} UTC</div>",
            DrawDividerLine = true,
        };
        var pdf = renderer.RenderHtmlAsPdf($"<h1>Secure Document</h1><p>Document ID: {documentId}</p>");

        string outputPath = $"SecurePdf_{documentId}.pdf";
        pdf.SaveAs(outputPath);

        Console.WriteLine($"PDF saved as {outputPath}");
    }
}
Imports IronPdf
Imports IronPdf.Editing
Imports System
Imports System.Security.Cryptography

Friend Class Program
	Public Shared Sub Main(ByVal args() As String)
		' Create an instance of Program to run non-static methods
'INSTANT VB NOTE: The variable program was renamed since it may cause conflicts with calls to static members of the user-defined type with this name:
		Dim program_Conflict As New Program()
		program_Conflict.CreatePdfWithSecureId()
	End Sub

	Private Function GenerateDocumentId() As String
		Dim idBytes(11) As Byte ' 96-bit ID
		RandomNumberGenerator.Fill(idBytes)
		Return BitConverter.ToString(idBytes).Replace("-", "")
	End Function

	Private Sub CreatePdfWithSecureId()
		Dim documentId = GenerateDocumentId()

		Dim renderer = New ChromePdfRenderer()
		' Add a custom footer with the document ID
		renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter With {
			.HtmlFragment = $"<div style='text-align: center; font-size: 10px;'>Document ID: {documentId} - Generated on {DateTime.UtcNow:yyyy-MM-dd HH:mm:ss} UTC</div>",
			.DrawDividerLine = True
		}
		Dim pdf = renderer.RenderHtmlAsPdf($"<h1>Secure Document</h1><p>Document ID: {documentId}</p>")

		Dim outputPath As String = $"SecurePdf_{documentId}.pdf"
		pdf.SaveAs(outputPath)

		Console.WriteLine($"PDF saved as {outputPath}")
	End Sub
End Class
$vbLabelText   $csharpLabel

Çıktı

Belge Kimliği ile PDF

Gelişmiş Kullanım Durumu: Rastgele Anahtarlarla Güvenli PDF Şifreleme

IronPDF, güvenli PDF oluşturma için güçlü destek sağlayarak PDF şifreleme desteği sunar. Şifreleme için güçlü parolalar veya anahtarlar oluşturmak için RandomNumberGenerator'u kullanabilirsiniz:

using IronPdf;
using IronPdf.Editing;
using System;
using System.Security.Cryptography;

class Program
{
    public static void Main(string[] args)
    {
        // Create an instance of Program to run non-static methods
        var program = new Program();
        program.CreateEncryptedPdf();
    }

    string GenerateSecurePassword(int length = 12)
    {
        const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()";
        byte[] data = new byte[length];
        RandomNumberGenerator.Fill(data);

        char[] result = new char[length];
        for (int i = 0; i < length; i++)
        {
            result[i] = chars[data[i] % chars.Length];
        }
        return new string(result);
    }

    void CreateEncryptedPdf()
    {
        string password = GenerateSecurePassword();

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential PDF</h1><p>Access is restricted.</p>");

        // Set security settings
        pdf.SecuritySettings.UserPassword = password;
        pdf.SecuritySettings.AllowUserAnnotations = false;
        pdf.SecuritySettings.AllowUserCopyPasteContent = false;
        pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrint;

        string filePath = "EncryptedSecurePdf.pdf";
        pdf.SaveAs(filePath);

        Console.WriteLine($"Encrypted PDF saved to {filePath} with password: {password}");
    }
}
using IronPdf;
using IronPdf.Editing;
using System;
using System.Security.Cryptography;

class Program
{
    public static void Main(string[] args)
    {
        // Create an instance of Program to run non-static methods
        var program = new Program();
        program.CreateEncryptedPdf();
    }

    string GenerateSecurePassword(int length = 12)
    {
        const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()";
        byte[] data = new byte[length];
        RandomNumberGenerator.Fill(data);

        char[] result = new char[length];
        for (int i = 0; i < length; i++)
        {
            result[i] = chars[data[i] % chars.Length];
        }
        return new string(result);
    }

    void CreateEncryptedPdf()
    {
        string password = GenerateSecurePassword();

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential PDF</h1><p>Access is restricted.</p>");

        // Set security settings
        pdf.SecuritySettings.UserPassword = password;
        pdf.SecuritySettings.AllowUserAnnotations = false;
        pdf.SecuritySettings.AllowUserCopyPasteContent = false;
        pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrint;

        string filePath = "EncryptedSecurePdf.pdf";
        pdf.SaveAs(filePath);

        Console.WriteLine($"Encrypted PDF saved to {filePath} with password: {password}");
    }
}
Imports IronPdf
Imports IronPdf.Editing
Imports System
Imports System.Security.Cryptography

Friend Class Program
	Public Shared Sub Main(ByVal args() As String)
		' Create an instance of Program to run non-static methods
'INSTANT VB NOTE: The variable program was renamed since it may cause conflicts with calls to static members of the user-defined type with this name:
		Dim program_Conflict As New Program()
		program_Conflict.CreateEncryptedPdf()
	End Sub

	Private Function GenerateSecurePassword(Optional ByVal length As Integer = 12) As String
		Const chars As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()"
		Dim data(length - 1) As Byte
		RandomNumberGenerator.Fill(data)

		Dim result(length - 1) As Char
		For i As Integer = 0 To length - 1
			result(i) = chars.Chars(data(i) Mod chars.Length)
		Next i
		Return New String(result)
	End Function

	Private Sub CreateEncryptedPdf()
		Dim password As String = GenerateSecurePassword()

		Dim renderer = New ChromePdfRenderer()
		Dim pdf = renderer.RenderHtmlAsPdf("<h1>Confidential PDF</h1><p>Access is restricted.</p>")

		' Set security settings
		pdf.SecuritySettings.UserPassword = password
		pdf.SecuritySettings.AllowUserAnnotations = False
		pdf.SecuritySettings.AllowUserCopyPasteContent = False
		pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrint

		Dim filePath As String = "EncryptedSecurePdf.pdf"
		pdf.SaveAs(filePath)

		Console.WriteLine($"Encrypted PDF saved to {filePath} with password: {password}")
	End Sub
End Class
$vbLabelText   $csharpLabel

Bu yöntem, işletim sisteminin RNG'sinin varsayılan uygulamasını kullanır ve kriptografik işlemler için uygun bir şifre üretir.

Bu, oluşturulan güvenli parolayı uygulayacak, böylece yalnızca şifrelere erişimi olan kullanıcılar belgeyi görebilecek.

Şifre korumalı açılır pencere

Ayrıca, belirlediğimiz izinlerle şifrelenmiş, güvenli bir belge kalacak:

Şifreli PDF ayarları

En İyi Uygulamalar ve İpuçları

  • Güvenlikle ilgili her şey için her zaman RandomNumberGenerator kullanın. Kimlikler, simgeler veya parolalar için Random'dan kaçının.

  • Hassas verileri günlüklerde veya kullanıcıya yönelik mesajlarda bulundurmayın, ancak izlemek ve denetlemek için yeterince kayıt tutun.

  • Daha iyi izlenebilirlik için rastgele kimliklerle birlikte zaman damgaları ve diğer meta verileri kullanmayı düşünün.

  • Belgelerinizi korumak için IronPDF'in yerleşik güvenlik özelliklerini rastgele anahtarlarla birleştirin.

  • Bağlamınızda kullanılabilirliği sağlamak için rastgele veri uzunluğunu ve kodlamasını doğrulayın (örn. dosya adları, URL'ler, barkodlar).

Özet

C#'ın RandomNumberGenerator sınıfını IronPDF ile entegre etmek, modern güvenlik standartlarını karşılayan güvenli, benzersiz PDF'ler üretmenizi sağlar. Benzersiz kimlikler damgalıyor, şifreleme anahtarları üretiyor veya güvenli belirteçler gömüyor olun, bu yaklaşım size yardımcı olur:

  • Belge sahteciliği önleyin

  • İzlenebilirliği artırın

  • PDF'lerinizdeki hassas verileri güvence altına alın

Bu sınıfın kriptografik gücü ile IronPDF'in çok yönlü PDF araçlarını birleştirerek, PDF çözümleriniz daha güvenli ve profesyonel olur.

Kendiniz Deneyin!

PDF güvenliğinizi artırmaya hazır mısınız? IronPDF ücretsiz deneme sürümünü deneyin ve bugün güvenli rastgele veriyle denemeye başlayın!

Sıkça Sorulan Sorular

C#'ta RandomNumberGenerator sınıfı nedir?

C#'taki RandomNumberGenerator sınıfı, kriptografik olarak güvenli rastgele sayılar üretmek için yöntemler sağlayan System.Security.Cryptography adlı alanın bir parçasıdır. PDF şifrelemesi ve benzersiz tanımlayıcılar oluşturma gibi senaryolarda özellikle faydalıdır.

RandomNumberGenerator PDF projelerinde nasıl kullanılabilir?

PDF projelerinde RandomNumberGenerator, PDF şifrelemesi için güvenli parolalar oluşturmak, benzersiz dosya adları üretmek ve tahmin edilebilir dizileri ortadan kaldırmak için kullanılabilir. Bu, belgelerinizin güvenliğini ve benzersizliğini artırır.

Rastgele sayı üretiminde neden RandomNumberGenerator tercih edilmelidir?

RandomNumberGenerator, kriptografik olarak güvenli sayılar ürettiği için rastgele sayı üretiminde tercih edilir. Bu, PDF belgelerinde şifreleme gibi güvenlik odaklı uygulamalar için uygundur.

RandomNumberGenerator, tahmin edilebilir dizilerden kaçınmada yardımcı olabilir mi?

Evet, RandomNumberGenerator, kriptografik olarak güvenli sayılar üreterek tahmin edilebilir dizilerden kaçınmada yardımcı olur ve dizilerin rastgele ve kolayca tahmin edilemez olmasını sağlar.

RandomNumberGenerator rastgele dizeler oluşturmak için uygun mudur?

Evet, RandomNumberGenerator, önce rastgele baytlar üreterek ve ardından bunları dizelere dönüştürerek rastgele dizeler oluşturmak için kullanılabilir. Bu, PDF projelerinde güvenli parolalar veya benzersiz tanımlayıcılar oluşturmak için yararlıdır.

C#'ta RandomNumberGenerator'a yönelik bazı kullanım örnekleri nelerdir?

C#'ta RandomNumberGenerator kullanım örnekleri, PDF şifrelemesi, benzersiz dosya adları üretimi, rastgele parolalar oluşturma ve kriptografik olarak güvenli rastgele sayılar gerektiren herhangi bir senaryodur.

RandomNumberGenerator, PDF belgelerinin güvenliğini nasıl artırır?

RandomNumberGenerator, kriptografik olarak güvenli rastgele sayılar sağlayarak PDF belgelerinin güvenliğini artırır. Bu sayılar, belgelerin içeriğini korumak için şifreleme anahtarları, parolalar ve diğer güvenlik önlemleri olarak kullanılır.

RandomNumberGenerator'un diğer rastgele sayı üreticilerine göre avantajı nedir?

RandomNumberGenerator'un diğer rastgele sayı üreticilerine göre avantajı, kriptografik olarak güvenli sayılar üretebilme yeteneğidir. Bu, PDF dosya şifrelemesi gibi yüksek güvenlik gerektiren uygulamalar için uygun hale getirir.

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 ...

Daha Fazla Oku

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara