IRONSOFTWAREHOME
ATUALIZAÇÕES DO DESENVOLVEDOR

Simplifique a emissão de faturas eletrônicas com a atualização mais recente do IronPDF: Conformidade com PDF/A-3 e suporte ao ZUGFeRD.

Curtis Chau
Curtis Chau
Updated: 21 de abril de 2026

Às vezes, ao trabalhar com documentos PDF, você pode precisar gerar números aleatórios ou sequências aleatórias. Seja para gerar números aleatórios e senhas para criptografia de PDFs, criar nomes de arquivos exclusivos, evitar sequências previsíveis ou gerar números por qualquer outro motivo, a classe RandomNumberGenerator do C# pode levar seus projetos de geração e edição de PDFs para o próximo nível.

Diferentemente de um objeto aleatório básico criado a partir da classe Random, este gerador de números aleatórios criptográficos produz valores aleatórios criptograficamente fortes, adequados para operações criptográficas em aplicações seguras.

Neste artigo, vamos explorar:

  • O que é um gerador de números aleatórios e por que ele é importante.

  • Como usar um gerador de números aleatórios criptográficos em C# para gerar números aleatórios, strings aleatórias e outros dados aleatórios para fins criptográficos.

  • Exemplos práticos de integração do RandomNumberGenerator com o IronPDF para criar PDFs seguros e exclusivos usando os números e strings gerados.

Dicas e boas práticas para aumentar a segurança e o profissionalismo em seus aplicativos PDF.

O que é a classe RandomNumberGenerator?

Antes de mergulharmos na integração com o IronPDF , vamos relembrar brevemente o que torna o RandomNumberGenerator especial.

  • Faz parte do namespace System.Security.Cryptography.

  • Ele gera valores aleatórios criptograficamente fortes como bytes aleatórios, muito mais seguro do que a classe Random típica.

  • É ideal para cenários que exigem imprevisibilidade, como a geração de tokens seguros, chaves, salts e identificadores únicos.

  • Utiliza algoritmos criptográficos como AES-CTR DRBG, Fortuna ou CSPRNGs fornecidos pelo sistema operacional. Tornando-o resistente à previsão.

  • Ideal para tarefas como criação de chaves criptográficas, geração de senhas, tokens de segurança e IDs de documentos exclusivos.

Essa robustez advém da utilização dos geradores de números aleatórios seguros subjacentes ao sistema operacional, o que o torna resistente a ataques de previsão ou engenharia reversa. Ao contrário dos geradores de números pseudoaleatórios que podem produzir a mesma sequência com o mesmo valor de semente, esta classe é projetada para verdadeira aleatoriedade e propósitos criptográficos.

Por que usar RandomNumberGenerator em vez da classe Random de C#?

Muitos desenvolvedores começam usando a classe Random do C# para gerar números inteiros aleatórios, mas ela não foi projetada para cenários de alta segurança. É possível prever padrões em sua saída, especialmente se o mesmo valor inicial ou horário do sistema for usado, o que significa que os números gerados podem ser adivinhados. Isso ocorre porque o método gera valores usando operações aritméticas modulares simples que podem se repetir com a mesma entrada.

Em contraste, o RandomNumberGenerator produz números verdadeiramente aleatórios, derivados de geradores de números aleatórios criptográficos no .NET Framework ou no sistema operacional subjacente. Isso garante que não haja viés para valores baixos e geralmente utiliza uma estratégia de descarte e nova tentativa para manter uma distribuição uniforme entre um limite inferior (por exemplo, int minValue) e um limite superior exclusivo (por exemplo, int maxValue). A ilustração abaixo destaca a diferença entre um gerador de números aleatórios (RNG) fraco e um seguro.

"Weak" vs. Secure RNG

Por que usar o RandomNumberGenerator com o IronPDF?

IronPDF é uma biblioteca .NET robusta para PDF, que permite aos desenvolvedores criar, editar e proteger documentos PDF. Casos de uso comuns onde a aleatoriedade importa incluem:

  • Identificadores únicos de documentos: Anexe IDs criptograficamente seguros a PDFs para rastreamento ou validação.

  • Marcas d'água seguras: Incorpore marcas d'água ou códigos aleatórios que impeçam a falsificação.

  • Chaves ou senhas de criptografia: Gere chaves ou senhas seguras para criptografia de PDF.

  • Conteúdo aleatório: Adicione tokens ou salts únicos aleatórios a documentos PDF para verificação de integridade.

Como gerar dados aleatórios seguros em C#

Aqui está um exemplo simples de como gerar um token aleatório seguro de 128 bits (16 bytes).

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

Este método cria uma matriz de bytes segura e a retorna como uma string Base64 — perfeita para incorporar ou rastrear em testes unitários, nomes de arquivos ou IDs seguros.

Exemplo prático: Adicionando IDs de documento exclusivos a documentos PDF

Vamos combinar o poder do RandomNumberGenerator e do IronPDF para gerar um PDF com um ID de documento único e seguro impresso em cada página.

Etapa 1: Gere um ID de documento seguro

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

Isso produz uma string hexadecimal aleatória de 24 caracteres (por exemplo, "4F3A2C9B7D1E8F0A5B6C7D8E").

Passo 2: Crie o PDF e carimbe o documento de identificação.

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:
  • Gera um número aleatório para um ID de documento único e criptograficamente seguro.

  • Gera um arquivo HTML para PDF incorporando esse ID.

  • Adiciona um rodapé em cada página com o ID do documento e o carimbo de data/hora.

  • Salva o PDF usando o ID no nome do arquivo para facilitar o rastreamento.

Exemplo de código totalmente funcional

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

Saída

PDF com ID do documento

Caso de uso avançado: Criptografia segura de PDF com chaves aleatórias

IronPDF suporta criptografia PDF, fornecendo suporte forte para a criação segura de PDFs. Você pode usar o RandomNumberGenerator para criar senhas fortes ou chaves de criptografia:

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

Este método usa a implementação padrão do RNG do sistema operacional, produzindo uma senha adequada para operações criptográficas.

Isso aplicará a senha de segurança gerada, de modo que somente os usuários com acesso às senhas poderão visualizar o documento.

Pop-up de proteção por senha

Além disso, ficaremos com um documento seguro e criptografado com nossas permissões definidas:

Configurações de PDF criptografado

Melhores práticas e dicas

  • Sempre utilize RandomNumberGenerator para qualquer assunto relacionado à segurança. Evite usar o método aleatório para IDs, tokens ou senhas.

  • Mantenha dados sensíveis fora dos registros ou mensagens voltadas para o usuário, mas registre o suficiente para rastreamento e auditoria.

  • Considere usar registros de data e hora e outros metadados juntamente com IDs aleatórios para melhor rastreabilidade.

  • Utilize os recursos de segurança integrados do IronPDF, combinados com chaves aleatórias, para proteger seus documentos.

  • Valide o comprimento e a codificação dos dados aleatórios para garantir a usabilidade no seu contexto (por exemplo, nomes de arquivos, URLs, códigos de barras).

Resumo

A integração da classe RandomNumberGenerator do C# com o IronPDF permite gerar PDFs seguros e exclusivos que atendem aos padrões de segurança modernos. Seja você carimbando IDs únicos, gerando chaves de criptografia ou incorporando tokens seguros, esta abordagem ajuda você a:

  • Prevenir a falsificação de documentos

  • Melhorar a rastreabilidade

  • Proteja dados confidenciais em seus PDFs

Ao combinar a robustez criptográfica desta classe com as ferramentas versáteis de PDF do IronPDF, suas soluções em PDF tornam-se mais seguras e profissionais.

Experimente você mesmo!

Pronto para reforçar a segurança dos seus PDFs? Experimente a versão de avaliação gratuita do IronPDF e comece a testar com dados aleatórios seguros hoje mesmo!

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.

...
Leia mais

Artigos relacionados

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.