【发布时间】:2014-06-21 10:38:43
【问题描述】:
这不是一个 100% 的 c# 或 ASP.NET 问题,而是安全性和编程的混合体。所以我提前道歉。我需要将文件签名模块集成到我的 ASP.NET Web 应用程序中。我还需要编写一个实用程序来验证签名。我知道如何签署文件并验证它。以下是我的签名方式:
private byte[] SignFile(byte[] fileData){
X509Certificate2 cert=GetCertificate();
RSACryptoServiceProvider csp = cert.PrivateKey;
SHA1Managed sha1 = new SHA1Managed();
byte[] hash = sha1.ComputeHash(fileData);
return csp.SignData(hash, CryptoConfig.MapNameToOID("SHA1"));
}
到目前为止一切顺利。另一方面,在验证时我需要公钥。所以这是我的问题。我是否需要将证书与签名文件一起发送,以便对方可以拿公钥来验证签名。如果是这样,这会带来另一个问题:其他人不能从附加证书中获取私钥来编辑文件并重新签名吗?这样做的正确方法是什么?
【问题讨论】:
标签: asp.net ssl private-key