我正在尝试让 NTLM 身份验证与 Node.js 一起工作。我一直在读这个(http://davenport.sourceforge.net/ntlm.html#theNtlmMessageHeaderLayout)。我发送 header 并获得 Base64 身份验证 header 。
我尝试通过使用 base64 编码创建一个新的 Buffer 然后调用 toString('utf8')
将其从 Base64 转换为 UTF8,它返回类似
NTLMSSP\u0000\u0001\u0000\u0000\u0000\u0007�\b�\u0000
这是我需要帮助的地方。我知道 NTLMSSP\u0000 是空终止签名,但其余部分应该表示,但对我来说这只是垃圾。它是 unicode 字符,但我应该如何从中获取实际数据呢?我可能转换不正确,这可能会增加我的麻烦,但我希望有人能提供帮助。
最佳答案
看看http://www.innovation.ch/personal/ronald/ntlm.html 您收到的是 Type-2 消息。这些页面以非常实用的方式对其进行了解释。您必须提取服务器质询 (nonce) 和服务器标志。
我刚刚为 node.js 实现了一个模块来做到这一点:https://github.com/SamDecrock/node-http-ntlm
关于Node.js NTLM HTTP 身份验证,如何处理这 3 种类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5541099/