在 Windows 操作系统中,用户密码不会以明文(plaintext)的形式保存在计算机中,而会以加密(encrypted)形式存储。Windows 默认使用 NTLM 或 Kerberos 认证协议进行加密存储密码。具体而言:
-
NTLM: NTLM 是 Windows 早期版本中默认的密码加密方式,经过数次升级已经变成 NTLMv2。NTLM 使用单向哈希(one-way hash)算法将密码加密后在本地进行保存,在传输时通过随机数加盐(adding salt)的方式增强安全性,加密过程使用 MD4 算法,但由于单向哈希容易被暴力破解,因此在更高级的 Windows 版本中已经逐步被 Kerberos 代替。
-
Kerberos:Kerberos 是采用对称密钥算法(Symmetric Key Algorithms)的一种网络身份认证协议。Windows 2000 以后的版本默认使用 Kerberos 5 作为身份验证协议。在 Kerberos 认证过程中,用户输入的密码先进行散列(hash)后,发送给域控制器进行认证,域控制器保存在 Active Directory 数据库中的是用户的密码散列值而非原始密码本身。
总之,无论是 NTLM 还是 Kerberos,Windows 系统都会将用户的密码加密后存储,增强了密码的安全性。