IRONSOFTWAREHOME
ENTWICKLER-UPDATES

Vereinfachen Sie das E-Invoicing mit IronPDFs neuem Update: PDF/A-3-Konformität und ZUGFeRD-Unterstützung

Jacob Mellor, Chief Technology Officer @ Team Iron
Jacob Mellor
Updated: 21. April 2026

Manchmal, wenn Sie mit PDF-Dokumenten arbeiten, benötigen Sie möglicherweise Zufallszahlen oder zufällige Zeichenfolgen. Egal ob Sie Zufallszahlen und Passwörter für die PDF-Verschlüsselung generieren, eindeutige Dateinamen erstellen, vorhersehbare Sequenzen vermeiden oder Zahlen aus anderen Gründen generieren müssen, die Verwendung der RandomNumberGenerator C#-Klasse kann Ihre PDF-Erstellungs- und Bearbeitungsprojekte auf die nächste Stufe heben.

Im Gegensatz zu einem einfachen Zufallsobjekt, das aus der Random-Klasse erstellt wird, erzeugt dieser kryptografische Zufallszahlengenerator kryptografisch starke Zufallswerte, die sich für kryptografische Operationen in sicheren Anwendungen eignen.

In diesem Artikel werden wir untersuchen:

  • Was RandomNumberGenerator ist und warum es wichtig ist.

  • Wie man einen kryptografischen Zufallszahlengenerator in C# verwendet, um Zufallszahlen, zufällige Zeichenfolgen und andere zufällige Daten für kryptografische Zwecke zu generieren.

  • Praktische Beispiele für die Integration des RandomNumberGenerators mit IronPDF, um sichere, einzigartige PDFs mit den generierten Zahlen und Zeichenfolgen zu erstellen.

  • Tipps und bewährte Praktiken zur Erhöhung der Sicherheit und Professionalität Ihrer PDF-Anwendungen.

Was ist die RandomNumberGenerator-Klasse

Bevor wir uns mit der IronPDF-Integration befassen, wollen wir kurz darauf eingehen, was den RandomNumberGenerator besonders macht.

  • Es ist Teil des Namespaces System.Security.Cryptography.

  • Es werden kryptografisch starke Zufallswerte als Zufallsbytes generiert, die viel sicherer sind als die typische Random-Klasse.

  • Es ist ideal für Szenarien, die Unvorhersehbarkeit erfordern, wie die Generierung von sicheren Tokens, Schlüsseln, Salzen und einzigartigen Kennungen.

  • Verwendet kryptografische Algorithmen wie AES-CTR DRBG, Fortuna oder vom Betriebssystem bereitgestellte CSPRNGs. * Macht es resistent gegen Vorhersagen.

  • Am besten geeignet für Aufgaben wie die Erstellung kryptografischer Schlüssel, Passwortgenerierung, sichere Tokens, einzigartige Dokument-IDs.

Diese Stärke stammt aus der Abhängigkeit von den zugrunde liegenden sicheren Zufallszahlengeneratoren des Betriebssystems, die es resistent gegen Vorhersage- oder Reverse-Engineering-Angriffe machen. Im Gegensatz zu Pseudozufallszahlengeneratoren, die mit demselben Startwert dieselbe Sequenz erzeugen können, ist diese Klasse für echte Zufälligkeit und kryptografische Zwecke ausgelegt.

Warum den RandomNumberGenerator anstelle der Random-Klasse von C# verwenden?

Viele Entwickler beginnen mit der Random-Klasse von C#, um Zufallszahlen zu erzeugen, aber sie ist nicht für hochsichere Szenarien ausgelegt. Muster in ihrem Output können vorhergesagt werden, insbesondere wenn derselbe Saatwert oder die Systemzeit verwendet wird, was bedeutet, dass die erzeugten Zahlen erraten werden könnten. Dies liegt daran, dass die Methode Werte mit einfachen modularen Arithmetikoperationen erzeugt, die sich bei gleichen Eingaben wiederholen können.

Im Gegensatz dazu erzeugt der RandomNumberGenerator echte Zufallszahlen, die aus kryptografischen Zufallszahlengeneratoren in der .NET Framework oder dem zugrunde liegenden Betriebssystem abgeleitet sind. Dies stellt sicher, dass es keine niedrige Wert-Voreingenommenheit gibt und oft eine Verwerfen-und-Wiederholen-Strategie verwendet wird, um die gleichmäßige Verteilung zwischen einer unteren Schranke (z.B. int minValue) und einer exklusiven oberen Schranke (z.B. int maxValue) aufrechtzuerhalten. Die folgende Darstellung hebt den Unterschied zwischen einem schwachen RNG und einem sicheren hervor.

"Weak" vs. Secure RNG

Warum RandomNumberGenerator mit IronPDF verwenden

IronPDF ist eine robuste .NET PDF-Bibliothek, die es Entwicklern ermöglicht, PDF-Dokumente zu erstellen, zu bearbeiten und zu sichern. Häufige Anwendungsfälle, bei denen Zufälligkeit wichtig ist, umfassen:

  • Eindeutige Dokumentkennungen: Kryptografisch sichere IDs an PDFs für Tracking oder Validierung anhängen.

  • Sichere Wasserzeichen: Zufällige Wasserzeichen oder Codes einfügen, die Fälschungen verhindern.

  • Verschlüsselungsschlüssel oder Passwörter: Sichere Schlüssel oder Passwörter für die PDF-Verschlüsselung generieren.

  • Zufällige Inhalte: Zufällige eindeutige Tokens oder Salze zu PDF-Dokumenten hinzufügen, um die Integrität zu überprüfen.

Wie man sichere Zufallsdaten in C# generiert

Hier ist ein einfaches Beispiel für die Generierung eines 128-Bit (16-Byte) sicheren Zufallstokens.

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);
}

Diese Methode erstellt ein sicheres Byte-Array und gibt es als Base64-Zeichenfolge zurück — perfekt zum Einbetten oder Verfolgen in Unit-Tests, Dateinamen oder sicheren IDs.

Praktisches Beispiel: Hinzufügen eindeutiger Dokument-IDs zu PDF-Dokumenten

Lassen Sie uns die Leistungsfähigkeit des RandomNumberGenerators und IronPDF kombinieren, um ein PDF mit einer einzigartigen, sicheren Dokument-ID zu erzeugen, die auf jeder Seite gestempelt wird.

Schritt 1: Erzeugen einer sicheren Dokument-ID

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

Dies erzeugt einen 24-stelligen hexadezimalen Zufallsstring (z.B. "4F3A2C9B7D1E8F0A5B6C7D8E").

Schritt 2: Erstellen der PDF-Datei und Stempeln der ID

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:
  • Erzeugt eine Zufallszahl für eine kryptografisch sichere, einzigartige Dokument-ID.

  • Rendert ein HTML zu PDF, das diese ID einbettet.

  • Fügt jeder Seite einen Fußzeilentext mit der Dokument-ID und einem Zeitstempel hinzu.

  • Speichert das PDF unter Verwendung der ID im Dateinamen zur einfachen Nachverfolgung.

Voll funktionsfähiges Code-Beispiel

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}");
    }
}

Ausgabe

PDF mit Dokumenten-ID

Erweiterter Anwendungsfall: Sichere PDF-Verschlüsselung mit zufälligen Schlüsseln

IronPDF unterstützt PDF-Verschlüsselung und bietet eine starke Unterstützung für die sichere PDF-Erstellung. Sie können den RandomNumberGenerator verwenden, um starke Passwörter oder Schlüssel für die Verschlüsselung zu erstellen:

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}");
    }
}

Diese Methode verwendet die Standardimplementierung des RNG aus dem Betriebssystem und erzeugt ein Passwort, das für kryptografische Operationen geeignet ist.

Dies wird das generierte sichere Passwort anwenden, sodass nur Benutzer mit Zugriff auf die Passwörter das Dokument anzeigen können.

Passwortschutz-Pop-up

Darüber hinaus bleibt uns ein verschlüsseltes, sicheres Dokument mit unseren festgelegten Berechtigungen:

Verschlüsselte PDF-Einstellungen

Beste Praktiken und Tipps

  • Verwenden Sie immer den RandomNumberGenerator für alles, was mit Sicherheit zu tun hat. Vermeiden Sie Random für IDs, Tokens oder Passwörter.

  • Halten Sie sensible Daten aus Protokollen heraus, aber protokollieren Sie genügend für das Tracking.

  • Erwägen Sie die Verwendung von Zeitstempeln und anderen Metadaten zusammen mit zufälligen IDs für eine bessere Rückverfolgbarkeit.

  • Verwenden Sie die integrierten Sicherheitsfunktionen von IronPDF in Kombination mit zufälligen Schlüsseln, um Ihre Dokumente zu schützen.

  • Prüfen Sie die Länge und Kodierung der Zufallsdaten, um die Nutzbarkeit in Ihrem Kontext sicherzustellen (z.B. Dateinamen, URLs, Barcodes).

Zusammenfassung

Durch die Integration der RandomNumberGenerator-Klasse von C# mit IronPDF können Sie sichere, einzigartige PDFs erstellen, die modernen Sicherheitsstandards entsprechen. Egal, ob Sie eindeutige IDs stempeln, Verschlüsselungsschlüssel generieren oder sichere Tokens einbetten, dieser Ansatz hilft Ihnen dabei:

  • Dokumentfälschung verhindern

  • Rückverfolgbarkeit verbessern

  • Sensible Daten innerhalb Ihrer PDFs sichern

Durch die Kombination der kryptographischen Stärke dieser Klasse mit den vielseitigen PDF-Tools von IronPDF werden Ihre PDF-Lösungen sicherer und professioneller.

Versuchen Sie es selbst!

Bereit, Ihre PDF-Sicherheit zu verbessern? Testen Sie IronPDF kostenlos und experimentieren Sie noch heute mit sicheren Zufallsdaten!

Jacob Mellor, Chief Technology Officer @ Team Iron
Chief Technology Officer

Jacob Mellor ist Chief Technology Officer bei Iron Software und ein visionärer Ingenieur, der Pionierarbeit in der C# PDF-Technologie leistet. Als der ursprüngliche Entwickler hinter der Kern-Codebasis von Iron Software hat er die Produktarchitektur des Unternehmens seit seiner Gründung geprägt und es zusammen mit CEO Cameron Rimington in ein Unternehmen mit mehr als 50 Mitarbeitern verwandelt, das die NASA, Tesla und globale Regierungsbehörden beliefert.

...
Weiterlesen

Verwandte Artikel

Key in blue circle

Holen Sie sich sofort Ihren kostenlosen 30-Tage-Testschlüssel.

Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.

bullet_checkedIhr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Buchen Sie Ihre kostenlose Live-Demo
Booking Badge

Von Millionen von Ingenieur*innen weltweit vertraut

Kundenlogos von Iron Software
Erhalten Sie Ihre unverbindliche Beratung
Füllen Sie das Formular unten aus oder senden Sie eine E-Mail an sales@ironsoftware.com
Ihre Daten werden immer vertraulich behandelt.
Von Millionen von Ingenieur*innen weltweit vertraut
Kundenlogos von Iron Software
Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.