第二十四章 加密安全标头元素 - 基本示例

news/2025/1/15 12:20:50/

文章目录

  • 第二十四章 加密安全标头元素 - 基本示例

第二十四章 加密安全标头元素 - 基本示例

以下示例调用 Web 客户端并发送已加密的 <UsernameToken>。在此示例中,正文未加密。

  Set client=##class(XMLEncrSecHeader.Client.XMLEncrSecHeaderSoap).%New()// Create UsernameTokenset user="_SYSTEM"set pwd="SYS"set userToken=##class(%SOAP.Security.UsernameToken).Create(user,pwd)//get credentials for encryptionset cred = ##class(%SYS.X509Credentials).GetByAlias("servernopassword") //get EncryptedKey element and add itset encropt=$$$SOAPWSEncryptNone   ; means do not encrypt bodyset enckey=##class(%XML.Security.EncryptedKey).CreateX509(cred,encropt)//create EncryptedData and add a reference to it from EncryptedKeyset encdata=##class(%XML.Security.EncryptedData).Create(,userToken)set dataref=##class(%XML.Security.DataReference).Create(encdata)do enckey.AddReference(dataref)//add EncryptedKey to security headerdo client.SecurityOut.AddSecurityElement(enckey) //add UsernameToken and place it after EncryptedKeydo client.SecurityOut.AddSecurityElement(userToken,enckey) Quit client.Divide(1,2)

该客户端发送如下消息:

<?xml version="1.0" encoding="UTF-8" ?><SOAP-ENV:Envelope [parts omitted]>  <SOAP-ENV:Header><Security xmlns="[parts omitted]oasis-200401-wss-wssecurity-secext-1.0.xsd"><EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#"><EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"><DigestMethod xmlns="http://www.w3.org/2000/09/xmldsig#"Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod></EncryptionMethod><KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><SecurityTokenReference xmlns="[parts omitted]oasis-200401-wss-wssecurity-secext-1.0.xsd"><KeyIdentifier EncodingType="[parts omitted]#Base64Binary"    ValueType="[parts omitted]#ThumbprintSHA1">[omitted]</KeyIdentifier></SecurityTokenReference></KeyInfo><CipherData><CipherValue>pftET8jFDEjNC2x[parts omitted]xEjNC2==</CipherValue></CipherData><ReferenceList><DataReference URI="#Enc-61000920-44DE-471E-B39C-6D08CB17FDC2"></DataReference></ReferenceList></EncryptedKey><EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Id="Enc-61000920-44DE-471E-B39C-6D08CB17FDC2" Type="http://www.w3.org/2001/04/xmlenc#Element"><EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"></EncryptionMethod><CipherData><CipherValue>wW3ZM5tgPD[parts omitted]tgPD==</CipherValue></CipherData></EncryptedData></Security>  </SOAP-ENV:Header>  <SOAP-ENV:Body>[omitted]</SOAP-ENV:Body></SOAP-ENV:Envelope>

作为一个简单的变化,请考虑上一节中的过程。假设我们在步骤 4 中执行以下操作,并且不做其他更改:

 set enckey=##class(%XML.Security.EncryptedKey).CreateX509(credset)

在这种情况下,来自客户端的消息包括加密正文和加密的 :

<?xml version="1.0" encoding="UTF-8" ?><SOAP-ENV:Envelope [parts omitted]>  <SOAP-ENV:Header><Security xmlns="[parts omitted]oasis-200401-wss-wssecurity-secext-1.0.xsd"><EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#"><EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"><DigestMethod xmlns="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod></EncryptionMethod><KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><SecurityTokenReference xmlns="[parts omitted]oasis-200401-wss-wssecurity-secext-1.0.xsd"><KeyIdentifier EncodingType="[parts omitted]#Base64Binary" ValueType="[parts omitted]#ThumbprintSHA1">5a[parts omitted]dM1r6cM=</KeyIdentifier></SecurityTokenReference></KeyInfo><CipherData><CipherValue>TB8uavpr[parts omitted]nZBiMCcg==</CipherValue></CipherData><ReferenceList><DataReference URI="#Enc-43FE435F-D1D5-4088-A343-0E76D154615A"></DataReference><DataReference URI="#Enc-55FE109A-3C14-42EB-822B-539E380EDE48"></DataReference></ReferenceList></EncryptedKey><EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Id="Enc-43FE435F-D1D5-4088-A343-0E76D154615A" Type="http://www.w3.org/2001/04/xmlenc#Element"><EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"></EncryptionMethod><CipherData><CipherValue>G+X7dqI[parts omitted]nojroQ==</CipherValue></CipherData></EncryptedData></Security>  </SOAP-ENV:Header>  <SOAP-ENV:Body><EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Id="Enc-55FE109A-3C14-42EB-822B-539E380EDE48" Type="http://www.w3.org/2001/04/xmlenc#Content"><EncryptionMethod Algorithm="[parts omitted]aes128-cbc"></EncryptionMethod><CipherData><CipherValue>YJbzyi[parts omitted]NhJoln==</CipherValue></CipherData></EncryptedData></SOAP-ENV:Body></SOAP-ENV:Envelope>

与上一个示例相比,在本例中 <EncryptedKey> 元素包含对两个 <EncryptedData> 元素的引用。一个是安全标头中的 <EncryptedData> 元素,其中包含 <UsernameToken>;此引用是手动创建和添加的。另一个是 SOAP 主体中的 <EncryptedData> 元素;此引用是自动添加的。


http://www.ppmy.cn/news/1526180.html

相关文章

【组件】前端js HEIC/HEIF 转换为JPEG、PNG或GIF格式 苹果格式

【组件】前端js HEIC/HEIF 转换为JPEG、PNG或GIF格式 Heic2any: Client-side conversion of HEIC/HEIF image files to JPEG,PNG, or GIF in the browser.https://alexcorvi.github.io/heic2any/#demo GitHub - alexcorvi/heic2any: Converting HEIF/HEIF image formats to PN…

【QT】常用控件-下

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;折纸花满衣 &#x1f3e0;个人专栏&#xff1a;QT 目录 &#x1f449;&#x1f3fb;QComboBox&#x1f449;&#x1f3fb; QSpinBox&#x1f449;&#x1f3fb;QDateTimeEdit&#x1f449;&#x1f3fb;QD…

华为ensp:WLAN的无线综合实验

一、WLAN的知识点 1.WLAN的概念&#xff1a;WLAN是一种无线局域网技术&#xff0c;用于实现局部区域内的计算机设备互联和资源共享。 2.WLAN的工作原理&#xff1a;主要涉及无线网卡、接入控制器设备(AC)、无线接入点(AP)等关键组件的协同工作。 3.建立CAPWAP隧道阶段 4.为确…

优化安防视频监控的关键体验:视频质量诊断技术如何应用在监控系统中?

随着科技的不断进步&#xff0c;视频监控平台在公安、司法、教育、基础设施等众多领域得到了广泛应用。然而&#xff0c;视频图像的质量直接关系到监控系统的应用效果&#xff0c;是反映监控系统运维效果的重要指标之一。因此&#xff0c;视频监控平台需要配备一系列先进的视频…

计算机毕业设计选题推荐-项目评审系统-Java/Python项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

替换传统数据处理平台,TDengine 与华风数据达成合作

在全球能源转型的大背景下&#xff0c;新能源产业正迎来前所未有的发展机遇。随着国家对可再生能源的政策支持和市场需求的不断增长&#xff0c;风电、光伏和储能等新能源项目如雨后春笋般蓬勃发展。然而&#xff0c;随之而来的数据处理与管理挑战也日益凸显。面对海量的设备运…

返回当前栈内最小元素

设计一个栈&#xff0c;包含传统的push&#xff0c;pop&#xff0c;top方法。此外&#xff0c;再设计一个getMin函数&#xff0c;用于返回栈内最小的元素。 思想&#xff1a;存储普通的数据元素用eStack,存储最小值用栈minStack。当eStack存一个元素时&#xff0c;minStack记录…

react native(expo)选择图片/视频并上传阿里云oss

1.引入相关库&#xff1a; ant-design/react-native ant风格UI库 expo-file-system 文件访问 expo-image-picker 图片/视频选择器 2.新建图片选择并上传的帮助类 import { Toast } from ant-design/react-native; import * as FileSystem from "expo-file-system"…