码迷,mamicode.com
首页 > Windows程序 > 详细

Windows用户密码基础知识

时间:2015-07-17 07:16:28      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:windows   密码   

1.Hash基本知识

    在了解Windows用户密码之前,我们先认识一下Hash。

    Hash,我们称之为单向散列函数(也直接音译为哈希函数)。它是把任意长度的输入,通过散列算法,变换成固定长度的输出的一个函数。

   它具有以下几个特点:

(1).算法本身是不可逆的,即可以由输入得到散列值,但是不可能从散列值中得到输入值。

(2).不同的算法会得到不同长度的散列值,但使用同一个算法,无论输入的数据有多长,得到的散列值长度总是固定的。

(3).不同的输入必然产生不同的散列值,两条相似的数据产生的散列值可能会大相庭径。

  

   常用的Hash算法:

(1).MD4:MD4(RFC 1320)是MIT的Ronald Rivest在1990年设计的,MD是Message Digest(消息摘要)的缩写。它适用于32位字长的处理器上用高速软件实现。


(2).MD5:MD5(RFC 1321)是Rivest于1991年对MD4的改进版本。它对输入仍以512位分组,其输出是4个32位字的级联,与MD4相同。MD5比MD4复杂,并且速度较之要慢一点,但更加安全,在抗分析和抗差分方面表现更好。


(3).SHA-1:SHA1是由NIST NSA设计为同DSA一起使用的,它对长度小于264的输出,产生长度为160bit的散列值,因此抗穷举(brute-force)性更好。SHA-1设计时基于和MD4相同原理,并且模仿了该算法。


2.Windows密码

    Windows用户密码存放在C:\Windows\System32\config\SAM文件中。该文件被Windows系统独占打开,用户尝试打开该文件会显示如下:

技术分享

    Windows的用户密码有LMi-Hash和NTLM-Hash两种算法。

(1).LM-Hash:

    LM-Hash算法是在DES的基础上实现的,它不区分字母大小写,长度最长是14个字符,密码被分成2串7个字符进行存放。

(2).NTLM-Hash:

    NTLM-Hash算法是微软基于LM-Hash算法的弱点而设计的算法。它对字母大小写敏感,摆脱了LM-Hash的魔术字符串“KGS!@#$%”。它是基于MD4实现的,穷举难度较大。


    默认时,当Windows用户密码小于或者等于14个字符时,SAM文件中既存放着LM-Hash值,也存放着NTLM-Hash值。当用户密码大于14个字符,SAM文件中只存放NTLM-Hash值。

    为了用户密码的安全性,我们可以修改注册表,使SAM文件中只存放NTLM-Hash值。在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa下,修改名为“nolmhash”的DWORD值(如果没有这个值就添加它),将它设置为1,重启系统即可。   

本文出自 “勤劳小蚂蚁” 博客,请务必保留此出处http://qlxmy.blog.51cto.com/8016580/1675464

Windows用户密码基础知识

标签:windows   密码   

原文地址:http://qlxmy.blog.51cto.com/8016580/1675464

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!