0
我得到CryptographicException「哈希值不正確。」我試過verifyCms.CheckSignature(true); (同樣的錯誤) 我試圖在ContentInfo添加整個郵件(發件人,主題,正文,HTML Sectione ...)(同樣的錯誤)C#使用SignedCms驗證數字簽名
public static bool Verify(byte[] signature, X509Certificate2 certificate)
{
X509Certificate2 cert=new X509Certificate2(@"D:\Work\Digital Signature\smime.p7s");
certificate = cert;
if(signature == null)
throw new ArgumentNullException("signature");
if(certificate == null)
throw new ArgumentNullException("certificate");
//the text from the body of the mail
string text = "FINAL TEST SIGNED";
//hash the text
// Methode 3 for Hashing
System.Security.Cryptography.SHA1 hash3 = System.Security.Cryptography.SHA1.Create();
System.Text.UnicodeEncoding encoder = new System.Text.UnicodeEncoding();
byte[] combined = encoder.GetBytes(text);
byte[] hash3byte = hash3.ComputeHash(combined);
//Adding the text from the email, to a contentInfo
ContentInfo content = new ContentInfo(hash3byte);
// decode the signature
SignedCms verifyCms = new SignedCms(content,true);
verifyCms.Decode(signature);
// verify it
try
{
verifyCms.CheckSignature(new X509Certificate2Collection(certificate), false);
return true;
}
catch(CryptographicException)
{
return false;
}
}
問題出在哪裏?
您是否找到任何解決方案?我有同樣的問題.. –