【发布时间】:2019-03-06 23:11:00
【问题描述】:
我正在尝试通过 Node 发送 SOAP 请求,并与受 WSS 保护的服务通信。
我需要使用 SignedInfo 元素对 XML 响应进行签名,这需要我将生成的 Nonce 二进制密钥与从初始令牌请求返回的 Nonce 二进制密钥(PSHA1 格式)结合起来。
我已经能够使用 Java 验证这一点,通过使用以下类(其中秘密是我的客户端随机数,种子是服务器随机数):
使用以下 Java 代码:
Mac mac = Mac.getInstance("HmacSHA1");
SecretKeySpec key = new SecretKeySpec(getSharedKey(), "HmacSHA1");
mac.init(key);
String bytesToSign = "<XML_TO_SIGN_GOES_HERE>";
String signature = Base64.encodeBytes(mac.doFinal(bytesToSign.getBytes()));
不过,我需要在 Node 项目中执行此操作,我查看了 Crypto API 和众多插件,但无法生成相同的签名。
如何使用节点为 HmacSHA1 指定种子?
【问题讨论】:
-
您能否提供一个简单的 XML 示例,以及预期的结果?
标签: javascript node.js cryptography hmacsha1