最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
利用WSE 加密SOAP报文(4)
时间:2022-07-02 11:19:45 编辑:袖梨 来源:一聚教程网
加密对外发送的报文
这里我简单描述下如何创建一个可以返回个被加密的XML文档的Web服务。第一步先用using指示符来添加必要的命名空间,如下:
using System.Web.Services;
using Microsoft.Web.Services;
using Microsoft.Web.Services.Security;
using System.Security.Cryptography;
using System.Security.Cryptography.Xml;
using System.Xml;
GetXmlDocument方法使用了的.NET框架实现的三元DES算法,采用128位密钥和64位初始化向量(IV),能够生成对称密钥。这个密钥还将拥有一个名字,并被添加到应答报文的SoapContext元素上,之后被SecurityOutputFilter使用于加密简单的XML文档,这个方法最后将返回给客户端。更多关于.NET框架的加密技术,请看.NET框架开发者指南上的Cryptography Overview一文。
//返回由三元DES对称算法加密后的数据
[WebMethod (Description="返回一个由对称加密算法机密后的敏感XML文档", EnableSession=false)]
public XmlDocument GetXmlDocument()
{
//创建一个用于返回的简单的XML文档
XmlDocument myDoc = new XmlDocument();
myDoc.InnerXml =
"这里是敏感数据. ";
//得到对外发送的回应报文的SoapContext
SoapContext myContext = HttpSoapContext.ResponseContext;
//创建一个用于加密的对称密钥,由于密钥是对称的,这些相同的数据必须存在有需求的客户端上。
//定义共享的16字节数组,用来表示128位密钥
byte[] keyBytes = {48, 218, 89, 25, 222, 209, 227, 51, 50, 168, 146,
188, 250, 166, 5, 206};
//定义共享的8字节(64位)数组,也就是初始化向量(IV)
byte[] ivBytes = {16, 143, 111, 77, 233, 137, 12, 72};
这里我简单描述下如何创建一个可以返回个被加密的XML文档的Web服务。第一步先用using指示符来添加必要的命名空间,如下:
using System.Web.Services;
using Microsoft.Web.Services;
using Microsoft.Web.Services.Security;
using System.Security.Cryptography;
using System.Security.Cryptography.Xml;
using System.Xml;
GetXmlDocument方法使用了的.NET框架实现的三元DES算法,采用128位密钥和64位初始化向量(IV),能够生成对称密钥。这个密钥还将拥有一个名字,并被添加到应答报文的SoapContext元素上,之后被SecurityOutputFilter使用于加密简单的XML文档,这个方法最后将返回给客户端。更多关于.NET框架的加密技术,请看.NET框架开发者指南上的Cryptography Overview一文。
//返回由三元DES对称算法加密后的数据
[WebMethod (Description="返回一个由对称加密算法机密后的敏感XML文档", EnableSession=false)]
public XmlDocument GetXmlDocument()
{
//创建一个用于返回的简单的XML文档
XmlDocument myDoc = new XmlDocument();
myDoc.InnerXml =
"
//得到对外发送的回应报文的SoapContext
SoapContext myContext = HttpSoapContext.ResponseContext;
//创建一个用于加密的对称密钥,由于密钥是对称的,这些相同的数据必须存在有需求的客户端上。
//定义共享的16字节数组,用来表示128位密钥
byte[] keyBytes = {48, 218, 89, 25, 222, 209, 227, 51, 50, 168, 146,
188, 250, 166, 5, 206};
//定义共享的8字节(64位)数组,也就是初始化向量(IV)
byte[] ivBytes = {16, 143, 111, 77, 233, 137, 12, 72};
相关文章
- 《燕云十六声》配置要求介绍 12-25
- 《燕云十六声》搬砖介绍 12-25
- 时空中的绘旅人天宇之间怎么玩 绘旅人天宇之间活动玩法介绍 12-25
- QQ2024年度报告怎么看 2024qq年度报告玩法介绍 12-25
- 归龙潮珠砂什么时候up 归龙潮红缘绮梦卡池介绍 12-25
- 王者荣耀S38赛季有什么更新 12-25