Answers:
基本上是这样的:
LM哈希使用DES()算法计算。计算非常简单。输入是OEM字符集(8位)编码的密码,将其转换为大写。在大多数情况下,这只是ASCII字符串的大写字母。
NT哈希只是密码的MD4()。但是,在这种情况下,密码必须为Unicode(UCS2LE编码)。
(一点)更多信息在这里:http : //ubiqx.org/cifs/SMB.html#SMB.8
编辑:有关详细信息,您可能想在http://stackoverflow.com上询问,有关如何实现此操作的详细信息可能与编程相关,而不是系统管理
我同意Server Horror,但是您应该意识到,与Windows 95相比,LM哈希对于任何更新的版本都不需要,并且“彩虹表”是可用的(彩虹表是哈希的完整反向列表,即,对于任何哈希值,请输入密码),出于安全考虑,应将其禁用。
要在MS系统上禁用:http : //support.microsoft.com/kb/299656
在samba上,这是“ lanman auth”设置,根据手册页,该设置在当前samba中默认为禁用。
如Server Horror所述,这些只是不同的哈希计算算法。LM是Lan Manager的简短版本(通过搜索Lan Manager而不是LM,您可能会发现更多令人振奋的结果)。
另外,这可能会有所帮助:http : //www.linuxjournal.com/article/2717
MD4(UCS2LE(x))
是,哈希通常称为NTLM
哈希。Python代码进行计算:python3 -c 'import hashlib; import getpass; pw = getpass.getpass(); print(hashlib.new("md4", pw.encode("utf-16le")).hexdigest().upper());'