我如何将pdf数字签名到C#上的单独文件中?

问题描述 投票:0回答:1

如何在C#上将pdf数字签名到单独的文件中?我已经使用iText lib编写了代码,但这是内部数字签名。我想在单独的哈希文件中进行数字签名。这样您以后可以检查此数字签名。输出像:1.输出.pdf2. output.pdf.sig这个有可能?使用iText可以实现吗?

c# pdf itext digital-signature
1个回答
0
投票

以下demo code可能会让您入门:

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);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.