Windows SDK附带了一个名为signtool.exe的工具,可让您使用证书对文件进行签名.我需要做同样的事情,但在后台服务,所以我正在寻找一个库(最好是托管代码,但COM会做),做同样的事情.有任何想法吗?
找到了答案.以下是如何使用X.509证书在.NET中签名文件:
CmsSigner signer = new CmsSigner(); signer.Certificate = new X509Certificate2(certificate); SignedCms content = new SignedCms(new ContentInfo(File.ReadAllBytes(fileToSign))); content.ComputeSignature(signer, true); byte[] signedFile = content.Encode(); string signedFileName = fileToSign + ".signed"; File.WriteAllBytes(signedFileName, signedFile); Console.WriteLine("Signed file: " + signedFileName);
这里,certificate是包含证书的.pfx文件的路径,fileToSign是要签名的文件.