第三十二章 使用派生密钥令牌进行加密和签名 - 使用 DerivedKeyToken 进行加密

devtools/2024/10/18 10:18:49/

文章目录

  • 第三十二章 使用派生密钥令牌进行加密和签名 - 使用 <DerivedKeyToken>

第三十二章 使用派生密钥令牌进行加密和签名 - 使用

进行加密

要使用 <DerivedKeyToken> 进行加密,请使用以下步骤:

  1. 如果要加密一个或多个安全标头元素,请创建这些安全标头元素。.
  2. 创建 <DerivedKeyToken> 并将其添加到 WS-Security 标头,如创建和添加 <DerivedKeyToken> 中所述。

请注意,此步骤还会创建并添加 <EncryptedKey> 所基于的 <EncryptedKey> 元素。

  1. 对于要加密的每个元素,请根据该元素创建一个 <EncryptedData> 元素。为此,请调用 %XML.Security.EncryptedDataCreate() 类方法。在此过程中,请指定以下参数:

a. 派生密钥令牌
b. 要加密的项目。省略此参数可加密正文。
c. 指定 <EncryptedData> 元素如何引用 <DerivedKeyToken> 的宏。在此场景中,当前唯一支持的值是 $$$SOAPWSReferenceDerivedKey

例如,加密 <UsernameToken>

 set refopt=$$$SOAPWSReferenceDerivedKeyset encryptedData=##class(%XML.Security.EncryptedData).Create(dkenc,userToken,refopt) 

或者,加密正文:

 set refopt=$$$SOAPWSReferenceDerivedKeyset encryptedData=##class(%XML.Security.EncryptedData).Create(dkenc,,refopt) 
  1. 创建 <ReferenceList> 元素。为此,在类中调用 %XML.Security.ReferenceList%New() 方法。例如:
 set reflist=##class(%XML.Security.ReferenceList).%New() 
  1. 在这个<ReferenceList>中,创建一个指向<EncryptedData>元素的<ReferenceList>。为此,对每个<EncryptedData>执行以下操作:

a. 调用 %XML.Security.DataReferenceCreate() 类方法,并指定加密数据实例作为参数。此方法返回 %XML.Security.DataReference的实例。

b. 调用引用列表实例的 AddReference() 方法并指定数据引用实例作为参数。

 set dataref=##class(%XML.Security.DataReference).Create(encdata)do reflist.AddReference(dataref)set dataref2=##class(%XML.Security.DataReference).Create(encdata2)do reflist.AddReference(dataref2)
  1. <ReferenceList> 元素添加到 WS-Security 标头元素。为此,请调用 Web 客户端或 Web 服务的 SecurityOut 属性的 AddSecurityElement() 方法。对于要添加的元素,请指定您的引用列表实例。
 do ..SecurityOut.AddSecurityElement(reflist)

http://www.ppmy.cn/devtools/118387.html

相关文章

这才是CSDN最系统的网络安全学习路线(建议收藏)

01 什么是网络安全 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防两面…

负载均衡的作用

文章目录 负载均衡的作用 负载均衡的作用 提高系统性能&#xff1a; 负载均衡通过将进入系统的请求或负载分散到多个服务器上&#xff0c;能够显著提高系统的整体处理能力和响应速度。当一个服务器无法处理大量的请求时&#xff0c;负载均衡技术可以有效地将负载分配到其他服务…

SpringCloud alibaba

官网地址收藏一份 Spring Cloud Alibaba 一片简介不错 https://zhuanlan.zhihu.com/p/649599045

openlayers知识总结、教程

地图是由图层layer、一个可视化视图view、用于修改地图内容的交互interaction以及使用UI组件的控件control组成的 创建基本地图 let map new ol.Map({target:map, //对象指向layers:[ //图层new:ol.layer.Tile({ //这里定义是平铺图层source: new ol.source,OSM({src:"…

实施自动化测试的五个条件

摘要&#xff1a; 谈到什么是组成一次自动化测试的“恰当实施”经常会关注你需要用的工具&#xff0c;但是那仅仅是等式的一部分。巴斯 迪杰斯特拉详细说明了你需要考虑的其他四件事&#xff0c;他们如何致力于你的自动化测试的成功&#xff0c;以及关联到不能适当关注它们中任…

工控主板在工业控制中扮演什么角色

工控主板在工业控制中扮演着至关重要的角色&#xff0c;它是工业控制系统的核心组件&#xff0c;负责连接、控制和管理各种工业设备&#xff0c;实现自动化生产和智能化管理。具体来说&#xff0c;工控主板在工业控制中的作用可以归纳为以下几个方面&#xff1a; 一、核心控制…

VSCode的使用

一、VS code快捷键大全 打卡终端 CTRL 显示/隐藏侧边栏 CTRL B 查找下一个&#xff08;需要先选中&#xff09; CTRL D 格式化代码 ALT SHIFT F &#xff08;实在不习惯 我修改为 CTRL ALT L&#xff09; 注释代码 CTRL / 向右缩进 Tab 向左缩进 SHIFT Tab 向上向下…

Redis-持久化

首先,我们明白一个概念, 硬盘>持久 内存>不持久 而Redis是一个内存数据库,不持久,相比于Mysql这样的关系型数据库,最明显的特点是快/效率高 为了保证速度快,数据要保存再内存中,为了持久,存储在硬盘上 所以redis决定: 插入>内存&#xff0b;硬盘(硬盘是为了在re…