2011-07-29 47 views
2

我已經生成了一個自簽名證書(X509證書),並且想要使用私鑰簽署一些文檔以進行數字簽名,並且正在使用C#進行簽名。如何導入私鑰並將其用於在C#中籤署文檔?

如何導入.pvk文件?我是否需要從密鑰庫導入?

我可以使用此代碼簽署並創建數字簽名嗎?

RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(); 
RSAPKCS1SignatureFormatter RSAFormatter = new RSAPKCS1SignatureFormatter(RSA); 
RSAFormatter.SetHashAlgorithm("SHA1"); 
RSAFormatter.SetKey(cert.PrivateKey); 
byte[] SignedHash = RSAFormatter.CreateSignature(data); 

回答

1

儘量壽初始化您的RSA這樣的:

RSACryptoServiceProvider RSA = (RSACryptoServiceProvider)cert.PrivateKey; 

生成簽名我使用rsa.SignData(data, "sha1");

+0

那麼我可以像這樣初始化證書嗎? X509Certificate2 cert = new X509Certificate2(privatekeyfile,password); –

+0

是的,私鑰文件是例如.pfx –

+0

非常感謝您的回答 –

1

首先你需要確定的,以什麼格式的簽名應。如果您處理證書,很可能您將創建PKCS#7或CMS簽名。 .NET中有一個用於CMS簽名的類。

接下來的步驟取決於您是否需要基於證書的PKCS#7簽名或RSA(PKCS#1)簽名。

附註 - 將幾個問題合併爲一個問題很難正確回答。如果您進行搜索,大多數問題都有很多答案。

+0

感謝您的回答 Ps。我在這裏很新,下次我會針對每個主題提出一個問題 –

相關問題