国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

利用WSE 加密SOAP報文(5)

2024-07-21 02:21:39
字體:
來源:轉載
供稿:網友
,歡迎訪問網頁設計愛好者web開發。解密收到的報文

不管是在客戶端還是在服務器端,wse總是在securityinputfilter實現報文解密的,由于對稱加密需要由公共密鑰派生出來的加密密鑰,你需要創建一個securityinputfilter能夠調用的方法來得到這個對稱密鑰,然后你就能使用包含在encrypteddata中的密鑰和算法信息來幫你找到正確的共享密鑰和加密算法了。這個方法必須實現在從microsoft.web.services.security.idecryptionkeyprovider派生出來的類中。在我的例子中,decryptionkeyprovider.getdecryptionkey方法返回了對稱密鑰,如下:



public decryptionkey getdecryptionkey(string encalgorithmuri,

keyinfo keyinfo)

{



//重新創造同樣的用于表示128位密鑰的16個字節

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

188, 250, 166, 5, 206};





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

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



symmetricalgorithm mysymalg = new tripledescryptoserviceprovider();

mysymalg.key = keybytes;

mysymalg.iv = ivbytes;



//重新創建對稱加密密鑰

decryptionkey mykey = new symmetricdecryptionkey(mysymalg);



return mykey;

}

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



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



<configuration>

...

<microsoft.web.services>

<security>

<decryptionkeyprovider

type="myclient assembly.decryptionkeyprovider,

myclientassembly" />

</security>

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

使用 x.509 證書來給soap報文加密

正如我前面提到的,非對稱操作有一定開銷。當傳輸大量數據時,從性能上來說,用非對稱算法來加密這些數據會顯得不太實際,wse就這個問題,實現了一種偽非對稱性加密(pseudo-asymmetric encryption)。和非對稱性加密的報文相比,wse使用一個非對稱性算法和x.509證書的一個公開備份,以此來加密對稱密鑰,而實際上這些被用來給報文加密。當收到報文后,securityinputfilter得到和x.509證書相關聯的私有密鑰,以此給對稱密鑰解密,然后用解密后的密鑰給報文正文解密。為了能讓這個例子能夠正常工作,一個來自受信任的證書認證的x.509證書(支持加密),必須出現在客戶機器上當前用戶帳號的個人證書儲藏室里面,這個證書的私有密鑰也必須出現在本地機器在主管web服務的服務器的帳號里。另外,ca證書鏈中的一個證書必須出現在客戶端的受信任儲存室里,那樣wse才知道可以信任接受到的x.509證書。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 墨玉县| 綦江县| 兴城市| 塔城市| 长乐市| 连南| 仲巴县| 灵石县| 广丰县| 浮山县| 永和县| 宣武区| 论坛| 资源县| 小金县| 沙坪坝区| 安多县| 江油市| 巴林右旗| 正安县| 广丰县| 滦平县| 蛟河市| 四会市| 木里| 岐山县| 贞丰县| 赤水市| 江津市| 苍溪县| 莆田市| 巍山| 岑溪市| 甘南县| 永清县| 于都县| 南澳县| 青神县| 元谋县| 兴和县| 唐山市|