2012-04-20 80 views
0

我想簽署將在服務器上驗證的xml文檔。我不知道如何使用數字證書(如.cer和.pfx文件)簽署和加密xml文件。我用Google搜索了&發現的各種例子,但無法理解的標準方式即使用x509證書和加密的數字簽名

什麼是循序漸進的過程,以

一個catch下面是簽名和加密的XML文件,

我想簽署和加密在這樣一個 客戶端(.net C#代碼)的文件,它可以驗證和解密在服務器(Java代碼)

回答

1

如果你想在C#和Java中這樣做,你可能想看看BouncyCastle。這是一個用於處理加密的流行庫,它支持C#和Java。

資源:http://www.bouncycastle.org/

+0

感謝您的重播。你可以提供的例子或步驟來簽署和使用bouncycastle加密xml文件 – kevin159 2012-04-20 10:36:55

+0

XMLDSig或XMLEnc從來沒有在原始問題中的要求。我只是說,你可以使用BouncyCastle加密/解密文件。 – 2012-04-20 11:07:24

0

你需要的是所謂的XMLDSig和XMLEnc(這些都是相對PKCS7/CMS其進行加密和簽名數據作爲不透明的斑點相應的XML的簽名和加密標準XML方式的名稱) 。

Java內置了XMLDSig API(read the article here),儘管XMLEnc似乎沒有本地方式。

.NET Framework 4.0還具有內置的XML簽名和加密機制,但它們並不那麼明顯。 See how-tos here

我們公司提供了大量用於安全任務的庫,名爲SecureBlackbox,SecureBlackbox包含對XMLDSig,XMLEnc和XAdES的靈活且易於使用的支持。 .NET和Java版本都可用。閱讀details about XMLBlackbox SecureBlackbox包。

更新:如果您不關心格式,並且XML數據的唯一路由是從一個特定位置到另一個位置,那麼您可以使用PKCS#7/CMS而不是XMLDSig和XMLEnc。 如上所述,CMS將您的數據視爲不透明blob並將其封裝到二進制數據中。 BouncyCastle是其中一個選項,SecureBlackbox也可以使用。