Java smb身份验证(74字节对24字节)

Java smb身份验证(74字节对24字节),java,smb,Java,Smb,我需要实现一个将作为Windows共享访问的虚拟文件系统 似乎Alfresco JLan正在做这项工作。到目前为止,从这个答案开始,我得到了一些有希望的结果: 现在,我似乎无法实际验证。我的虚拟实现总是成功的,但只要我尝试验证密码,它就会失败 一些信息: 它在windows计算机上运行,windows本身不使用端口445(禁用服务器服务等) 在同一个Windows10客户端上,JLan似乎将其视为ntlmv1身份验证,这对我来说很奇怪(至少我希望是ntlmv2)。JLan的CifsAuthen

我需要实现一个将作为Windows共享访问的虚拟文件系统

似乎Alfresco JLan正在做这项工作。到目前为止,从这个答案开始,我得到了一些有希望的结果:

现在,我似乎无法实际验证。我的虚拟实现总是成功的,但只要我尝试验证密码,它就会失败

一些信息:

  • 它在windows计算机上运行,windows本身不使用端口445(禁用服务器服务等)
  • 在同一个Windows10客户端上,JLan似乎将其视为ntlmv1身份验证,这对我来说很奇怪(至少我希望是ntlmv2)。JLan的
    CifsAuthenticator::validatePassword
    中的alg==NTLM1
  • 似乎加密使用的密码是74字节,而它预期的是24字节,但它失败了
  • 必须删除似乎不再存在的CryptixCrypto,并用JLan中的
    MD4.getInstance()
    替换
    getInstance(“MD4”)
    ,因为这似乎是现代Java平台上的一种方式(MD4在默认情况下没有注册,正如MD4类本身所记录的那样)

我怎样才能再次检查我的密码?一些纯文本密码?

我不确定我能提供多少帮助,但我建议首先要探究的是为什么JLan(我对此一无所知)将您的Win10框视为NTLM1。除非您特别禁用了它的更高版本,否则默认情况下W10应该协商更高版本。我还想知道JLan对连接本身所做的任何假设,例如签名、安全等(SMB规则)。正如我所说,没有太多直接的帮助,但一些建议,在哪里寻找。最后,您可能会仔细阅读SAMBA项目在这方面的一些工作,看看这方面的任何类似问题是否会激发一些想法。您在进行身份验证时是否收到任何错误?你可以在GitHub上分享你的定制吗?@DavidW没有禁用或强制任何东西,我不确定它是否真的试图进行NTLM1身份验证,或者只是jlan得到了这样的结果。我试着用谷歌搜索所有这些,但还没有找到有用的东西。无论如何,谢谢你的意见。@mojojo。它只是假装身份验证失败,并设置断点,我可以看到它期望一个24字节的散列,而实际上是74字节。有什么理由不使用JCIFS吗?JCIFS实际上是而且一直是SMB的Java实现。我不认为户外活动真的能成功。