Se ti sei mai imbattuto in un PDF protetto da password e hai bisogno di accedere al suo contenuto, puoi utilizzare Python per sbloccarlo. In questo articolo, ti mostrerò come rimuovere le password dai PDF utilizzando alcuni moduli Python molto utili. È importante ricordare che rimuovere la protezione di un PDF senza autorizzazione è illegale e può violare i termini di utilizzo del documento. Assicurati di avere il diritto di rimuovere la password dal PDF su cui stai lavorando.

Cos’è un PDF?
Un PDF è un tipo di file che contiene informazioni come testo, immagini e altri contenuti. È progettato per essere visualizzato e letto su qualsiasi dispositivo, come computer, tablet o smartphone, mantenendo sempre lo stesso aspetto. È utile perché mantiene la formattazione originale del documento, rendendolo facile da condividere e stampare senza che la disposizione dei testi e delle immagini cambi.
Cos’è un documento digitale?
Un documento digitale è un file elettronico che contiene informazioni strutturate in un formato leggibile da computer e altri dispositivi elettronici. Può essere creato, visualizzato, modificato e archiviato utilizzando software e hardware specifici. Esempi di documenti digitali includono file PDF, documenti di Word, fogli di calcolo Excel, presentazioni PowerPoint, immagini, video, e-mail e molti altri formati. I documenti digitali offrono numerosi vantaggi rispetto ai documenti cartacei, tra cui la facilità di condivisione, l’accesso remoto, la possibilità di archiviazione e ricerca efficienti, e la riduzione dell’uso di carta.
Script in Python
Questo script consente di eseguire un attacco a forza bruta per tentare di scoprire la password di un PDF, provando il maggior numero possibile di combinazioni:
import os
import PyPDF2
from termcolor import colored
import signal
import sys
import time
# Funzione per gestire l'interruzione del programma con Ctrl+C
def signal_handler(sig, frame):
os.write(sys.stdout.fileno(), b"\nProgramma interrotto con Ctrl + C\n")
sys.exit(0)
signal.signal(signal.SIGINT, signal_handler)
# Funzione per tentare di decrittare un PDF con una password
def try_password(pdf_reader, password):
try:
if pdf_reader.decrypt(password):
return password
except:
pass
return None
# Funzione principale per il brute-force del PDF
def brute_force_pdf(pdf_path, password_file):
# Apri il file PDF
with open(pdf_path, 'rb') as pdf_file:
pdf_reader = PyPDF2.PdfReader(pdf_file)
# Verifica se il PDF è protetto da password
if not pdf_reader.is_encrypted:
print("Il file PDF non è protetto da password.")
return None
# Leggi il file delle password
with open(password_file, 'r') as file:
passwords = [p.strip() for p in file.readlines()]
# Inizia il timer
start_time = time.time()
# Prova ogni password
for attempts, password in enumerate(passwords, 1):
print(colored(f"Provo la password {attempts}: {password}", "red"))
result = try_password(pdf_reader, password)
if result:
end_time = time.time()
elapsed_time = end_time - start_time
print(colored(f"\nPassword trovata: {result}", "green"))
print(colored(f"Tempo impiegato: {elapsed_time:.2f} secondi", "yellow"))
return result
print(colored("\nPassword non trovata.", "red"))
return None
# Esempio di utilizzo
pdf_path = input("Inserisci il percorso del file PDF: ")
password_file = input("Inserisci il percorso del file delle password: ")
brute_force_pdf(pdf_path, password_file)
Il codice che ho fornito è un esempio di un attacco a forza bruta per trovare la password di un file PDF protetto utilizzando Python. Il programma utilizza la libreria PyPDF2
per provare diverse password lette da un file di testo. La funzione brute_force_pdf
tenta di decrittare il PDF utilizzando ciascuna password fino a trovare quella corretta o esaurire tutte le opzioni.
Cos’è un bruteforce?
Un brute-force (forza bruta) in contesto di un PDF si riferisce a un metodo per cercare di scoprire la password di un file PDF protetto tentando tutte le combinazioni possibili di password fino a trovare quella corretta.
Come funziona il Brute-Force su un PDF?
- PDF protetto da password: Alcuni file PDF possono essere protetti da una password per impedire l’accesso non autorizzato al contenuto. Questa protezione può essere applicata per vari motivi, come la riservatezza dei dati o il controllo sull’accesso e la modifica del documento.
- Metodo di forza bruta: L’attacco a forza bruta consiste nel tentare tutte le possibili password, una dopo l’altra, fino a quando non viene trovata quella corretta. Il metodo può essere automatico e richiede l’uso di software o script specifici (come quello scritto in Python) per testare rapidamente un grande numero di password.
- Efficienza del brute-force: Questo metodo è molto semplice da comprendere ma può essere estremamente inefficiente, specialmente se la password è lunga e complessa. Più lunga e complicata è la password, più tempo e potenza computazionale saranno necessari per trovarla con un attacco a forza bruta. Tuttavia, per password corte o deboli, un brute-force può essere relativamente rapido.
- Applicazione: Utilizzare un attacco a forza bruta per sbloccare un PDF è spesso visto come l’ultima risorsa quando non si ha accesso alla password e si ha il diritto legale di accedere al contenuto del PDF. Per esempio, potresti aver dimenticato la password di un tuo documento protetto.
Per eseguire correttamente lo script che ti ho fornito, devi installare le seguenti librerie Python:
- PyPDF2: una libreria per leggere e manipolare file PDF, inclusa la capacità di tentare di decrittografare i PDF protetti da password.
- termcolor: una libreria per colorare il testo nel terminale, utile per fornire feedback visivo durante l’esecuzione dello script.
Installare Python
Prima di tutto, assicurati di avere Python installato sul tuo computer. Python è un linguaggio di programmazione gratuito e open-source. Lo script utilizza Python per eseguire il brute-force.
- Verifica se Python è installato: Apri il terminale (Prompt dei comandi su Windows, Terminale su macOS o Linux) e digita:
python --version
python3 --version
Installare pip (Python Package Installer)
Pip è lo strumento per installare librerie aggiuntive in Python.
- Verifica se pip è installato: Digita nel terminale:
pip --version
Come installare le librerie
Puoi installare queste librerie usando pip
, il gestore di pacchetti Python e Python3. Apri un terminale e digita i seguenti comandi:
pip install PyPDF2 termcolor
pip3 install PyPDF2 termcolor
Ecco una breve spiegazione dei comandi:
- PyPDF2: Utilizzata per leggere il file PDF e tentare di decrittografarlo con diverse password.
- termcolor: Utilizzata per colorare il testo nel terminale per una migliore leggibilità degli output.
Avvio script:
Per avviare uno script Python destinato al cracking di password di file PDF tramite un attacco di forza bruta, è importante avere a disposizione un file di testo che contenga un elenco di possibili password. Eseguo ora il comando:
python pdf.py
Questo comando nel mio caso apre lo script rinominato nel cmd di Windows.
Appena avviato lo script Python, vi verrà chiesto di inserire il percorso del file PDF da sbloccare. Inseritelo e poi inserite anche il percorso del file di testo contenente le parole chiave. Nel mio caso: password.txt.


Adesso lo strumento prova tutti i tentativi possibili elencati nel file di testo. Di seguito, possiamo osservare il numero di tentativi che vengono eseguiti al secondo.


Ecco il risultato del PDF aperto:

Spero che questo articolo vi sia piaciuto. Se desiderate rimanere aggiornati, vi consiglio di visitare il sito tutti i giorni dalle 9:00 AM. Alla prossima con altri articoli!