回答:
基本的にこれ:
LMハッシュは、DES()アルゴリズムを使用して計算されます。計算はかなり簡単です。入力は、大文字に変換されたOEM Charset(8ビット)エンコーディングのパスワードです。ほとんどの場合、これはASCII文字列の大文字にすぎません。
NTハッシュは、パスワードのMD4()にすぎません。ただし、この場合、パスワードはUnicode(UCS2LEエンコード)である必要があります。
(少し)詳細はこちら:http : //ubiqx.org/cifs/SMB.html#SMB.8
編集:http://stackoverflow.comで質問したい詳細については、これを実装する方法の詳細は、おそらくシステム管理よりもプログラミングに関連しています
私はサーバーホラーに同意しますが、LMハッシュはWindows 95より新しいものには不要であり、それらの「レインボーテーブル」が利用できるため、レインボーテーブルはハッシュの完全な逆リストです。 、ハッシュはここにパスワードがあります)セキュリティのために無効にする必要があります。
MSシステムで無効にするには:http : //support.microsoft.com/kb/299656
sambaでは「lanman auth」設定であり、manページによれば、現在のSambaではデフォルトで無効になっています。
サーバーホラーがすでに述べたように、これらは異なるハッシュ計算アルゴリズムです。LMは、Lan Managerの短いバージョンです(LMではなく、Lan Managerを検索すると、より魅力的な結果が見つかる可能性があります)。
また、これは役に立つかもしれません: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());'