欧美特黄不卡,涩涩视频在线,成人国产精品一区二区网站,亚洲一区二区三区欧美

當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

運用WSE 加密SOAP報文(5)

運用WSE 加密SOAP報文(5)

更新時間:2022-05-16 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

解密收到的報文

不管是在客戶端還是在服務(wù)器端,WSE總是在SecurityInputFilter實現(xiàn)報文解密的,由于對稱加密需要由公共密鑰派生出來的加密密鑰,你需要創(chuàng)建一個SecurityInputFilter能夠調(diào)用的方法來得到這個對稱密鑰,然后你就能使用包含在EncryptedData中的密鑰和算法信息來幫你找到正確的共享密鑰和加密算法了。這個方法必須實現(xiàn)在從Microsoft.Web.Services.Security.IDecryptionKeyProvider派生出來的類中。在我的例子中,DecryptionKeyProvider.GetDecryptionKey方法返回了對稱密鑰,如下:



public DecryptionKey GetDecryptionKey(string encAlgorithmUri,

KeyInfo keyInfo)

{



//重新創(chuàng)造同樣的用于表示128位密鑰的16個字節(jié)

byte[] keyBytes = {48, 218, 89, 25, 222, 209, 227, 51, 50, 168, 146,

188, 250, 166, 5, 206};





//重新創(chuàng)造表示初始化向量的8個字節(jié)(64位)

byte[] ivBytes = {16, 143, 111, 77, 233, 137, 12, 72};



SymmetricAlgorithm mySymAlg = new TripleDESCryptoServiceProvider();

mySymAlg.Key = keyBytes;

mySymAlg.IV = ivBytes;



//重新創(chuàng)建對稱加密密鑰

DecryptionKey myKey = new SymmetricDecryptionKey(mySymAlg);



return myKey;

}

即便在我的方法中并沒使用他們,WSE還是要把KeyInfo元素和加密算法的URI傳遞給這個方法的,決定使用哪一個共享密鑰或者加密算法來產(chǎn)生對稱密鑰



為了讓SecurityInputFilter能夠訪問到GetDecryptionKey方法,下面的配置信息必須加入到應(yīng)用程序的配置文件中(也就是 app.config 文件)



<configuration>

...

<microsoft.web.services>

<security>

<decryptionKeyProvider

type="MyClient Assembly.DecryptionKeyProvider,

MyClientAssembly" />

</security>

type 屬性不能有任何過多的空格或者任何換行。他們只包含上面的內(nèi)容以增強可讀性,這個也可一用WSE設(shè)置工具來修改。一旦DecryptionKeyProvider類被添加到客戶端而且WSE安全支持已經(jīng)配置好了,WSE將自動攔截加密數(shù)據(jù),一個基于標(biāo)準(zhǔn)的Web服務(wù)的2次開發(fā)平臺程序,就可以讓你隨心所欲的給客戶端編程了。

使用 X.509 證書來給SOAP報文加密

正如我前面提到的,非對稱操作有一定開銷。當(dāng)傳輸大量數(shù)據(jù)時,從性能上來說,用非對稱算法來加密這些數(shù)據(jù)會顯得不太實際,WSE就這個問題,實現(xiàn)了一種偽非對稱性加密(pseudo-asymmetric encryption)。和非對稱性加密的報文相比,WSE使用一個非對稱性算法和X.509證書的一個公開備份,以此來加密對稱密鑰,而實際上這些被用來給報文加密。當(dāng)收到報文后,SecurityInputFilter得到和X.509證書相關(guān)聯(lián)的私有密鑰,以此給對稱密鑰解密,然后用解密后的密鑰給報文正文解密。為了能讓這個例子能夠正常工作,一個來自受信任的證書認(rèn)證的X.509證書(支持加密),必須出現(xiàn)在客戶機器上當(dāng)前用戶帳號的個人證書儲藏室里面,這個證書的私有密鑰也必須出現(xiàn)在本地機器在主管Web服務(wù)的服務(wù)器的帳號里。另外,CA證書鏈中的一個證書必須出現(xiàn)在客戶端的受信任儲存室里,那樣WSE才知道可以信任接受到的X.509證書。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

主站蜘蛛池模板: 阿拉善盟| 临武县| 老河口市| 武功县| 登封市| 常熟市| 沙雅县| 海城市| 天水市| 西青区| 东安县| 南平市| 娄烦县| 贞丰县| 宜兴市| 明溪县| 务川| 武隆县| 丰原市| 翁牛特旗| 绥宁县| 海林市| 鞍山市| 乌苏市| 庄浪县| 凤阳县| 项城市| 南安市| 时尚| 南平市| 岐山县| 开阳县| 和田县| 天等县| 蓬莱市| 吉安市| 兰考县| 西峡县| 长丰县| 泸水县| 大新县|