Akses tidak sah ke file sensitif adalah masalah umum saat ini. Untuk memastikan bahwa hanya orang yang Anda beri otorisasi yang dapat mengakses konten file Anda, Anda dapat mengenkripsinya sebelum transmisi.
Pelajari cara mengenkripsi file PDF menggunakan Python, dan cara mendekripsinya kembali ke keadaan semula.
Menyiapkan Lingkungan
Untuk mengikuti, Anda harus terbiasa dengan dasar-dasar Python.
Pada terminal Mac atau antarmuka baris perintah Windows, jalankan perintah berikut untuk menginstal pustaka PyMuPDF:
pip instal PyMuPDF
Pustaka ini akan membantu Anda membuka dan memanipulasi file PDF.
Setelah selesai menginstal PyMuPDF, Anda siap untuk memulai pengkodean.
Kode sumber lengkap tersedia di a repositori GitHub.
Impor Modul Fitz
Impor modul fitz dari perpustakaan PyMuPDF. Ini akan memungkinkan Anda untuk memanggil dan menggunakan fungsi yang didukungnya.
impor fitz
Anda akan menggunakan fitz untuk membuka, mengenkripsi, mendekripsi, dan menyimpan PDF.
Periksa Apakah PDF Dienkripsi
Buat fungsi yang akan memeriksa apakah PDF sudah dienkripsi dengan mengembalikan nilai boolean.
defpdf_is_encrypted(mengajukan):
pdf = sesuai. Dokumen (berkas)
kembali pdf.isEncrypted
Anda akan menggunakan fungsi ini nanti untuk membantu program secara otomatis memutuskan apakah akan mengenkripsi atau mendekripsi input PDF.
Mengenkripsi PDF
Buat fungsi untuk mengenkripsi input PDF. Fungsi akan memeriksa apakah PDF sudah dienkripsi. Jika tidak dienkripsi, itu akan dienkripsi menggunakan algoritma AES-256. Ini adalah algoritme enkripsi terkuat yang ditawarkan fitz. Ini akhirnya akan menyimpan PDF terenkripsi.
defmengenkripsi_pdf_file(pdf, kata sandi, file keluar, file):
jikabukan pdf_is_encrypted (berkas):
permanen = int(
# Pastikan semua orang dengan PDF
# dapat mengaksesnya
fitz. PDF_PERM_ACCESSIBILITY
| fitz. PDF_PERM_PRINT # mengizinkan pencetakan
| fitz. PDF_PERM_COPY # mengizinkan penyalinan
| fitz. PDF_PERM_ANNOTATE # mengizinkan anotasi
)# Algoritma eEnkripsi
encrypt_meth = cocok. PDF_ENCRYPT_AES_256pdf.save (outfile, enkripsi=encrypt_meth, user_pw=kata sandi,
izin=perm)
jika pdf.simpan:
mencetak("PDF terenkripsi")
Fungsi ini menyimpan PDF terenkripsi ke jalur file yang Anda berikan dalam argumen outfile.
Mendekripsi PDF Terenkripsi
Buat fungsi dekripsi. Fungsi ini pertama-tama akan memeriksa apakah file input dienkripsi. Jika dienkripsi, itu akan meminta pengguna untuk memasukkan kata sandi. Ini kemudian akan mencoba membuka PDF menggunakan Kata Sandi yang disediakan. Jika kata sandi benar, fitz akan mendekripsi PDF. Ini kemudian akan menyimpan konten PDF yang didekripsi ke file PDF lain yang tidak dilindungi.
defmendekripsi_pdf(mengajukan):
jika pdf_is_encrypted (berkas):
kata sandi = masukan('Masukkan kata sandi pdf:')
pdf = fitz.buka (file)jika pdf.authenticate (kata sandi):
pdf.save('didekripsi.pdf')
jika pdf.simpan:
mencetak("PDF didekripsi")
kalau tidak:
mencetak('Kata kunci Salah')
Kode ini menyimpan PDF yang tidak dilindungi di direktori kerja Anda saat ini.
The telah mendekripsi protected.pdf file dan menyimpannya sebagai decrypted.pdf.
Mengontrol Alur Program
Buat fungsi utama yang akan mengontrol aliran program Anda. Ini akan menyimpan jalur input PDF, memanggil fungsi enkripsi dan dekripsi, dan meneruskan parameter input.
defutama():
# ganti jalur file dengan salah satunya
# pdf yang akan dienkripsi atau didekripsi
berkas = 'sampel.pdf'
pdf = fitz.buka (file)
kata sandi = 'lulus123'
mengenkripsi_pdf_file (pdf, kata sandi, 'dilindungi.pdf', berkas)
mendekripsi_pdf (pdf)
Untuk mengubah nama file PDF yang dienkripsi, ganti "protected.pdf" dengan milik Anda, pastikan untuk mempertahankan ekstensi ".pdf".
Menjalankan Metode Utama
Pastikan metode utama berjalan terlebih dahulu:
jika __nama__ == '__utama__':
utama()
Kode ini memeriksa apakah skrip dijalankan sebagai program utama dan bukan modul yang diimpor. Jika itu adalah program utama, itu memanggil fungsi utama.
Tingkatkan Keterampilan Python Anda
Membuat program enkripsi/dekripsi PDF dengan Python adalah proyek yang menyenangkan namun menantang. Ini membantu Anda melatih keterampilan Python dan menangani file master dengan bahasa tersebut.
Untuk meningkatkan keterampilan Anda, Anda harus mengerjakan lebih banyak proyek Python. Ini akan membantu Anda berinteraksi dengan lebih banyak pustaka dan modul Python. Python sangat beragam dan Anda dapat menerapkannya di banyak area untuk melakukan tugas yang berbeda.