Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Python có thể giúp bạn mã hóa và giải mã file PDF dễ dàng. Dưới đây là chi tiết cách mã hóa và giải mã file PDF bằng Python.

Vấn nạn bị xâm phạm các tập tin riêng tư khá phổ biến ngày nay. Vì thế, để đảm bảo chỉ những người được phép mới có thể truy cập nội dung file, bạn có thể mã hóa chúng trước khi gửi đi.
Để làm theo các bước dưới đây, bạn cần có kiến thức cơ bản về Python.
Trên một terminal Mac hoặc giao diện dòng lệnh Windows, chạy lệnh sau để cài thư viện PyMuPDF:
pip install PyMuPDF
Thư viện này sẽ giúp bạn mở và chỉnh sửa file PDF.

Khi đã hoàn tất cài đặt PyMuPDF, bạn đã sẵn sàng lập trình.
Nhập mô đun Fitz của thư viện PyMuPDF. Điều này sẽ cho phép bạn gọi và dùng các hàm mà nó hỗ trợ.
Import fitz
Bạn sẽ dùng fitz để mở, mã hóa, giải mã và lưu PDF.
Tạo một hàm kiểm tra mức độ mã hóa của PDF và trả về một giá trị boolean.
def pdf_is_encrypted(file):
pdf = fitz.Document(file)
return pdf.isEncrypted
Bạn sẽ dùng hàm này sau đó, để giúp chương trình tự động quyết định xem mã hóa hay giải mã PDF nhập vào.
Tạo một hàm để mã hóa PDF đầu vào. Hàm này cho bạn biết PDF đã được mã hóa hay chưa. Nếu chưa, nó sẽ mã hóa file bằng thuật toán AES-256. Đây là thuật toán mã hóa mạnh nhất mà fitz cung cấp. Cuối cùng, nó sẽ lưu PDF được mã hóa.
def encrypt_pdf_file(pdf, password, outfile, file):
if not pdf_is_encrypted(file):
perm = int(
# Ensure everyone with the PDF
# can access it
fitz.PDF_PERM_ACCESSIBILITY
| fitz.PDF_PERM_PRINT # permits printing
| fitz.PDF_PERM_COPY # permits copying
| fitz.PDF_PERM_ANNOTATE # permits annotations
)
# eEncryption algorithm
encrypt_meth = fitz.PDF_ENCRYPT_AES_256
pdf.save(outfile, encryption=encrypt_meth, user_pw=password,
permissions=perm)
if pdf.save:
print("PDF encrypted")
Hàm này lưu PDF được mã hóa vào đường dẫn file bạn chuyển đi trong đối số tệp ngoài.

Tạo một hàm giải mã. Hàm này đầu tiên sẽ kiểm tra xem file nhập vào có được mã hóa hay không. Nếu được mã hóa, nó sẽ nhắc người dùng nhập mật khẩu. Sau đó, nó sẽ thử mở PDF bằng mật khẩu được cung cấp. Nếu password đúng, fitz sẽ giải mã PDF. Sau đó, nó sẽ lưu nội dung của PDF được giải mã vào file PDF chưa được bảo vệ.
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')
Code này lưu PDF chưa được bảo vệ vào thư mục làm việc hiện tại.

Sau khi giải mã file protected.pdf thành công, nó sẽ được lưu dưới dạng decrypted.pdf.
Tạo một hàm chính sẽ kiểm soát luồng chương trình. Nó sẽ lưu đường dẫn của PDF nhập vào, gọi hàm mã hóa, giải mã và chuyển các tham số nhập vào.
def main():
# replace the file path with either that of
# the pdf to be encrypted or decrypted
file = 'sample.pdf'
pdf = fitz.open(file)
password = 'pass123'
encrypt_pdf_file(pdf, password, 'protected.pdf', file)
decrypt_pdf(pdf)
Để thay đổi tên của file PDF được mã hóa, thay thế protected.pdf bằng tên bạn muốn nhưng nhớ giữ nguyên định dạng .pdf.
Đảm bảo phương thức chính (main) chạy trước:
if __name__ == '__main__':
main()
Code này kiểm tra xem tập lệnh có đang được chạy dưới dạng chương trình chính chứ không phải mô-đun đã nhập hay không. Nếu là chương trình chính, nó sẽ gọi hàm main.
Tạo chương trình mã hóa/giải mã PDF trong Python là một dự án thú vị nhưng thử thách. Nó giúp bạn rèn luyện kỹ năng Python và làm chủ kỹ năng xử lý tập tin bằng ngôn ngữ này.
Nguồn tin: Quantrimang.com
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn
Cách dùng Meta-Prompting để ChatGPT tự nâng cấp câu lệnh của bạn
Kết nối các công cụ an toàn với Claude for Small Business
15 workflow trong Claude for Small Business : Lựa chọn 4 quy trình cốt lõi
Cách xử lý khi ChatGPT phản hồi chậm
TOP công cụ tạo video AI cho Instagram Reels
TOP website AI chỉnh sửa video trực tuyến, làm video online
Workflow tài chính trong Claude for Small Business: Trả lương và chốt sổ cuối tháng
Cách chỉnh sửa ảnh bằng AI trong Google Slides
Cách tạo tài khoản ChatGPT trên điện thoại, máy tính
Workflow thúc đẩy tăng trưởng: Các chiến dịch và quy trình nhắc nợ thanh toán
TOP công cụ AI tạo hội thoại cho video giáo dục
Hướng dẫn chỉnh sửa ảnh bằng Canva ngay trên Gemini
Hướng dẫn xóa bộ nhớ Claude
Khoảng trắng Play Together, đặt tên khoảng trống Play Together
Phân tích dữ liệu & tạo báo cáo bằng ChatGPT cho doanh nghiệp
Custom GPT & Workflow ChatGPT cho doanh nghiệp
4 nguồn gây hao hụt token ngầm khi sử dụng Claude Code
Tìm hiểu về Google Pics: Công cụ tạo và chỉnh sửa hình ảnh dễ dàng trong Google Workspace
Hướng dẫn tóm tắt slide Google Slides bằng Gemini
TOP ứng dụng diệt virus có tích hợp AI cho điện thoại Android