檢查簽名,我有:爲X509證書
- X509證書(Base64編碼);
- 字符串數據;
- 字符串數據簽名(Base64)。
是否可以檢查簽名?
我的代碼:
bool valid = false;
var signature = Convert.FromBase64String(base64Signature);
var data = Encoding.UTF8.GetBytes(stringData);
var x509 = new X509Certificate2(Convert.FromBase64String(certificate));
var dsa = x509.PublicKey.Key as DSACryptoServiceProvider;
if (dsa!=null)
valid = dsa.VerifySignature(data, signature);
else {
var rsa = x509.PublicKey.Key as RSACryptoServiceProvider;
if (rsa!=null)
valid = rsa.VerifyHash(data, ???, signature);
}
我不知道我應該用什麼來代替???。從證書中獲取哈希算法是可能的?
你能澄清是否要檢查證書的簽名(其發行人製造)或某些數據的簽名,與製作該證書對應的私鑰? – Bruno 2010-07-16 12:32:43
我想檢查一些數據的簽名(stringData)。 – 2010-07-16 12:33:30