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