簡體   English   中英

如何將 pdf 數字簽名到 C# 上的單獨文件中?

[英]How do I digitally sign a pdf into a separate file on C#?

如何將 pdf 數字簽名到 C# 上的單獨文件中? 我已經使用 iText lib 編寫代碼,但這是內部數字簽名。 我想要單獨的 hash 文件中的數字簽名。 以便您稍后可以檢查此數字簽名。 output like: 1. output.pdf 2. output.pdf.sig This is possible? iText 可以做到這一點嗎?

以下演示代碼可能會幫助您入門:

static void Main(string[] args)
{
    var fileName = args[0];

    //  create signature
    DSACryptoServiceProvider signer = new DSACryptoServiceProvider();
    var bytes = ReadBytes(fileName);
    var signature = signer.SignData(bytes);
    var publicKey = signer.ToXmlString(false);

    //  we could write this signature to a separate file
    Console.WriteLine("Digital signature: " + Convert.ToBase64String(signature));

    //  verify signature
    DSACryptoServiceProvider verifier = new DSACryptoServiceProvider();

    verifier.FromXmlString(publicKey);

    if (verifier.VerifyData(bytes, signature))
        Console.WriteLine("Signature OK");
    else
        Console.WriteLine("Signature not OK");
}

static byte[] ReadBytes(string fileName)
{
    using (var file = new FileStream(fileName, FileMode.Open, FileAccess.Read))
    using (var reader = new BinaryReader(file))
    {
        return reader.ReadBytes((int)file.Length);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM