0
電子簽名我有一組問題:驗證在.NET
- 什麼是一個.p7s文件包含哪些內容?我讀過它通常是發送到電子郵件的加密消息,但在我的情況下,我的硬盤上有一個文件和一個.p7s文件。該文件比.p7s大得多,所以我想知道它裏面的內容(當然還有如何使用它)。
2.這個問題的發生主要是因爲我沒有爲1的鼻子。 - 如果我有我的公鑰以字節數組的形式,我如何驗證C#簽名?我發現這個在互聯網上,但同樣,它使用從電子郵件得到了一些文字,我真的不知道發生了什麼事:
public static bool Verify(byte[] signature, string text)
{
X509Certificate2 certificate = new X509Certificate2(@"D:\My-CV.docx.p7s");
if (signature == null)
throw new ArgumentNullException("signature");
if (certificate == null)
throw new ArgumentNullException("certificate");
//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;
}
}
有人可以幫助我?
那麼我有證書的公共部分,但我怎樣才能使用它? .p7s文件有很多屬性,但哪一個是文檔簽名? –
你能顯示這個文件內容嗎? –
哪一個? .p7s文件?如果我能顯示它的內容,我不會問這個問題。 其他文件是一個普通的.docx文件。 –