前提
エラーなしで実行が止まってしまいます。
pythonの勉強を兼ねてプログラムを書いている中で興味があったので、ブルートフォースアッタクについてインターネットで調べながら書いて解読しているので、完璧にコードが理解できている訳ではありません。
実現したいこと
こちらで用意したpdfファイルのパスワードを特定したいです。
発生している問題・エラーメッセージ
エラーが発生していません。
該当のソースコード
Python
1import PyPDF2 2import itertools 3from multiprocessing import Pool 4import datetime 5 6def FileOpen(pw, file_pass): 7 pdf_file = open(file_pass, 'rb') 8 pw = ''.join(pw) 9 try: 10 open(pdf_file, password=pw) 11 print('パスワードは『{}』です'.format(pw)) 12 return True 13 except: 14 pass 15 16 def BruteForceAttack(fill_pass, num_p, alphanumeric, pass_num): 17 p = Pool(num_p) 18 dt_now = datetime.datetime.now() 19 print(dt_now, ",処理開始") 20 for i in pass_num: 21 dt_now = datetime.datetime.now() 22 print(dt_now, ", ", i, "文字開始") 23 24 cnt = 1 25 26 for passlist in itertools.product(alphanumeric, repeat=i): 27 if cnt <= 1: 28 start = datetime.datetime.now() 29 result = p.apply_async(FileOpen, (passlist, file_pass)) 30 result.wait() 31 elif 1 < cnt <= 100: 32 result = p.apply_async(FileOpen, (passlist, file_pass)) 33 result.wait() 34 else: 35 result - p.apply_async(FileOpen, (passlist, file_pass)) 36 37 if cnt == 100: 38 end = datetime.datetime.now() 39 start2end = end - start 40 wait = start2end.total_second() / 100 41 waitspan = 1 42 43 if cnt > 100 and cnt % waitspan == 0: 44 result.wait() 45 46 if result.get() == True: 47 break 48 49 cnt = cnt + 1 50 51 result.wait() 52 dt_now = datetime.datetime.now() 53 print(dt_now, ", ", i, "文字終了") 54 55 if result.get() == True: 56 break 57 58 p.close() 59 p.join() 60 61 dt_now = datetime.datetime.now() 62 print(dt_now, ", 処理終了") 63 64 if __name__ == "__main__": 65 file_pass = "------/2022.pdf" 66 num_p = 2 67 alphanumeric = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" 68 pass_num = [1, 2, 3, 4, 5, 6, 7, 8] 69 70 BruteForceAttack(fill_pass, num_p, alphanumeric, pass_num)
試したこと
同じようにブルートフォースアタックについて調べて出てきたプログラムと見比べてみたり他のプログラムを動かしてみたりしたのですが、当プログラムがなぜ途中で止まってしまうのかというのは分かりませんでした。
補足情報(FW/ツールのバージョンなど)
環境はmacです。
少し無理をしてパスワードは6桁にしたのですが、解読できずとも動けるコードが書きたいと思っています。
Pythonに関して全くの初心者なので、ご迷惑をおかけすることが多いかと思います。
上記のプログラムが書かれていたwebsiteです。
https://s6raming.blogspot.com/2021/08/pdf.html

回答1件
あなたの回答
tips
プレビュー