由參加的一個安全大賽來的。flag文件在一個加密的zip文件裏面,密鑰爲6-8位的數字。寫了個python腳本進行暴力解壓縮。python
其中暴力破解的密碼生成採用itertools庫提供的函數來產生。即product函數,product函數爲求迭代器的笛卡爾積。安全
以下:函數
list1 = [1,2,3]加密
list2 = [a,b]3d
for i in product(list1,list2):blog
print iip
輸出爲(1,a)it
(1,b)迭代器
(2,a)程序
(2,b)
(3,a)
(4,b)
則6位的密碼產生序列至關於product('1234567890', 6)。即6個'1234567890'序列產生的笛卡爾積。對應的生成密碼函數和解壓縮zip包的程序以下所示:
運行速度還挺快,以下是運行結果: