利用Python自動生成暴力破解的字典


Python是一款非常強大的語言。用於測試時它非常有效,因此Python越來越受到歡迎。

因此,在此次教程中我將聊一聊如何在Python中生成字典,並將它用於任何你想要的用途。

前提要求

1,Python 2.7(對於Python 3.x的版本基本相同,你只需要做一些微小調整)

2,Peace of mine(作者開的一個玩笑,這是一首歌名)

如果你用virtualenv搭建Python開發環境,請確保已經安裝了itertools。因為我們將會用到itertools生成字典。我們將一步一步地演示整個過程,所以請跟着本文學習,不要僅僅是復制粘貼所有代碼。

生成字典

新建一個名為”dicgen.py”的文件,並用你最順手的文本編輯器打開它。

首先我們要調用itertools。

我使用了itertools as itr,可以少打一些字。在調用了itertools之后,我們進入下一步。

我們需要選擇一些關鍵詞形成一些組合來生成所需的字典。把這些關鍵詞交給itertools提供的方法來生成字典。

尋找合適的關鍵詞需要一些小竅門。舉個例子,我忘記了一個用來管理服務器的文件密碼(.php)。我需要輸入用戶名和密碼來打開這個文件,才可以對我的服務器進行修改。我也忘記了cpanel的登錄信息。因此我決定暴力破解密碼。我記得用戶名,但是密碼記得不是很清楚,而且手動嘗試了所有組合但都不正確。因此我在Python里寫了一個腳本去生成密碼並登錄。我手頭上有一些密碼的線索,比如它是長度為六位,僅是字母組合,不包含數字或特殊符號。

讓我們回到教程中來。假設要生成一個六位長度,並且僅含有字母的密碼(大小寫混合)。

 

我們一點一點地來講解這段代碼。

words變量是我們希望在密碼中嘗試的字符。在本例中,這些字符就是字母表中的大寫和小寫字母。所以我們在這里添加了所有的大寫、小寫字母。

itr.product(words, repeat=6)是這段代碼最主要的部分,從給定的字母表中返回選擇的列表。由於本例中密碼長度為六位,所以此處設定了重復6次(repeat=6)。

我們把這個過程循環6次,確保每個字母列表都被加入到主列表中。

我們再把所有生成的密碼都放到一個列表里,看看能有多少種組合。但現在還別運行它,否則你的電腦可能會死機。

我們建議你在密碼生成后立即使用它,或者將它儲存在一個文檔里。這只是一個基本。在下一個教程里我們會更多地了解如何根據我們的需求更高效地生成密碼。

下面是完整代碼。

參考網址:python.freelycode.com


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM