UNIX口令破解
1.程序運行需求:
其中dictionary.txt文件爲破解口令的字典文件,passwords.txt文件爲臨時存放UNIX系統密碼的文件函數
2.程序源碼:
import crypt # 以hash方式加密的unix口令,的通常形式爲:HXajgneuer/jids 其中前兩位「HX」通常稱爲salt ,剩下的字符不影響哈希結果 # salt是此哈希的鹽值,長度是8位,超過8的後面的位數將不影響哈希的結果。 # 在正常狀況下,進行加密的時候,這個鹽值是隨機字符串。 def testPass(cryptPass): # 根據字典經過crypt函數判斷密碼 salt = cryptPass[0:2] # 讀哈希值得前兩位 dictFile = open('dictionary.txt','r') for word in dictFile.readlines(): word = word.strip('\n') # 清除頭尾空格,回車符等 # print(word,salt) cryptWord = crypt.crypt(word,salt) #使用字典數據利用crypt函數構造密碼 # print(cryptWord,cryptPass) if cryptWord==cryptPass: print("[+] Found Fassword: " + word + "\n") else: print("[-] PassWord Not Find !\n") def main(): passFile = open('passwords.txt') for line in passFile.readlines(): if ":" in line: user = line.split(':')[0] #將password中的數據以 「:」 分爲user和password兩部分,此爲user部分 cryptPass = line.split(':')[1].strip('\n') #此爲password部分 print("[*] Cracking Password For: "+user) testPass(cryptPass) #調用檢測比對函數 if __name__ == '__main__': main()