標籤: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系統獨佔開啟,使用者嘗試開啟該檔案會顯示如下:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6F/C2/wKioL1WnsV6iGdWtAAEPonTviWM550.jpg" title="8.JPG" alt="wKioL1WnsV6iGdWtAAEPonTviWM550.jpg" />
Windows的使用者密碼有LMi-Hash和NTLM-Hash兩種演算法。
(1).LM-Hash:
LM-Hash演算法是在DES的基礎上實現的,它不區分字母大小寫,長度最長是14個字元,密碼被分成2串7個字元進行存放。
(2).NTLM-Hash:
NTLM-Hash演算法是微軟基於LM-Hash演算法的弱點而設計的演算法。它對字母大小寫敏感,擺脫了LM-Hash的魔術字串“[email protected]#$%”。它是基於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使用者密碼基礎知識