2017-06-22 146 views
0

我有一些在中央許可站使用的X509v3證書數據。我的問題是,下面的信息量足以讓我使用C#代碼來解密數據嗎?另外,如何將證書屬性導入到項目中?我必須創建一個證書文件才能繼續嗎?使用X509證書進行解密

知道我是:

  • 主題
  • 序列號
  • 發行人
  • 「根CA」
  • 公鑰算法: 「與RSAEncryption」
  • RSA模量,128字節
  • RSA公鑰指數
  • 採用X509v3擴展密鑰用法: 「關鍵」
  • 簽名算法: 「md5WithRSAEncryption」,其次是256個字節無
  • SHA1指紋

我沒有任何證書文件。對不起,如果有類似的問題已經得到解答,不幸的是我無法找到像我這樣的人。

+0

「RSA Exponent」是什麼意思?爲了解密,您需要私鑰指數;公鑰指數是不夠的;請參閱https://en.wikipedia.org/wiki/RSA_%28cryptosystem%29#Decryption。 – fuglede

回答

2

不,您的數據不夠。首先,這是全部公開數據。它不包含私鑰。私鑰用於解密或簽名生成。公鑰用於加密和簽名驗證。

.NET API的特殊之處在於您可以看似使用證書進行解密。事實並非如此;證書和私鑰被視爲一個;只有如果包含私鑰然後你實際上可以解密。我個人認爲這是一個小小的設計錯誤。


原則上你可以創建一個給定信息的證書。基本上你必須用相同的信息生成證書,然後替換髮行者和簽名字段。

然而,這不是因爲心靈的薄弱;我甚至在嘗試之前建議幾年的經驗。如果上面列表中缺少任何信息,您將無法獲得有效的證書/簽名,,您將不會收到任何警告,只是出現故障。儘管你有一個優勢,如果簽名驗證或指紋與您所得到的完全相同,那麼您知道您已成功。

你當然無法解密;私鑰仍然會丟失。


請注意,簽名是256 untitled bytes

2

這些信息還不夠。這些數據是加密數據的公鑰。 RSAParameters