Question: how ntlm hash is calculated?
Answer: For hashing, NTLM uses Unicode support, replacing LMhash=DESeach(DOSCHARSET(UPPERCASE(password)), "KGS! @#$%") by NThash=MD4(UTF-16-LE(password)), which does not require any padding or truncating that would simplify the key.