繁体   English   中英

Windows密码存储在磁盘上的方式和位置,以及用于散列它们的算法?

[英]How and where are Windows passwords stored on the disk, and what algorithms are used to hash them?

我想在C#应用程序中实现散列算法的版本,并且需要知道Windows如何散列并检查密码。 我还需要知道它们的存储位置。 据我所知,在C:\\ Windows \\ System32 \\ config下的SAM文件中。 那是对的吗?

这里没什么棘手的。 NTLM哈希只是unicode密码的MD4。 MD4是不负责任的弱点,所以你需要一个全面的加密库,比如Bouncy Castle MS没有本地方法。

同样, 关于这个主题最佳参考

使用Org.BouncyCastle.Crypto.Generators;

使用Org.BouncyCastle.Crypto.Parameters;

使用Org.BouncyCastle.Security;

使用Org.BouncyCastle.Crypto.Digests;

我认为那些涵盖了它。 我希望...

这是一个将其作为byte []返回的,您可以根据需要进行转换。

    /// <summary>
    /// Convert Password to NT Hash.  Convert to unicode and MD4
    /// </summary>
    /// <param name="passwordIn">password In</param>
    /// <returns>NT Hash as byte[]</returns>
    public static byte[] NTHashAsBytes(string passwordIn)
    {
        MD4Digest md = new MD4Digest();
        byte[] unicodePassword = Encoding.Convert(Encoding.ASCII, Encoding.Unicode, Encoding.ASCII.GetBytes(passwordIn));


        md.BlockUpdate(unicodePassword, 0, unicodePassword.Length);
        byte[] hash = new byte[16];
        md.DoFinal(hash, 0);


        return hash;
    }

你的意思是“Windows”格式?

NTLMv1还是NTLMv2

LM

DCC / MSCash / MS-Cache

DCC2 / MSCash2 / MS-Cache2

另请参阅Windows 7密码哈希安全性问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM