Python Network Security Programming-1

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()
相關文章
相關標籤/搜索