
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 install PyMuPDF
Pustaka ini akan membantu Anda membuka dan memanipulasi file PDF.
Setelah selesai menginstal PyMuPDF, Anda siap untuk memulai pengkodean.
Impor Modul Fitz
Impor modul fitz dari perpustakaan PyMuPDF. Ini akan memungkinkan Anda untuk memanggil dan menggunakan fungsi yang didukungnya.
import 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.
def pdf_is_encrypted(file):
pdf = fitz.Document(file)
return 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.
def encrypt_pdf_file(pdf, password, outfile, file):
if not pdf_is_encrypted(file):
perm = int(
fitz.PDF_PERM_ACCESSIBILITY
| fitz.PDF_PERM_PRINT
| fitz.PDF_PERM_COPY
| fitz.PDF_PERM_ANNOTATE
)
encrypt_meth = fitz.PDF_ENCRYPT_AES_256
pdf.save(outfile, encryption=encrypt_meth, user_pw=password,
permissions=perm)
if pdf.save:
print("PDF encrypted")
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.
def decrypt_pdf(file):
if pdf_is_encrypted(file):
password = input('Enter pdf password : ')
pdf = fitz.open(file) if pdf.authenticate(password):
pdf.save('decrypted.pdf')
if pdf.save:
print("PDF decrypted")
else:
print('Incorrect Password')
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.
def main():
file = 'sample.pdf'
pdf = fitz.open(file)
password = 'pass123'
encrypt_pdf_file(pdf, password, 'protected.pdf', file)
decrypt_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:
if __name__ == '__main__':
main()
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.