Lindungi File PDF dengan Python
Enkripsi PDF dengan kata sandi dan izin
Gunakan Aspose.PDF for Python via .NET untuk mengamankan dokumen PDF dengan enkripsi berbasis kata sandi dan izin terbatas.
- Muat dokumen PDF.
- Buat sebuah
DocumentPrivilegeobjek izin. - Aktifkan izin yang diperlukan.
- Atur kata sandi pengguna dan pemilik.
- Pilih algoritma enkripsi.
- Terapkan enkripsi pada dokumen.
- Simpan PDF yang dienkripsi.
import aspose.pdf as ap
def encrypt_password(infile, outfile):
"""
Encrypt PDF with password and permissions.
Args:
infile (str): Input PDF filename
outfile (str): Output PDF filename
Returns:
None
Example:
encrypt_password("sample.pdf", "sample_protected.pdf")
Note:
Uses AES 128-bit encryption. Allows screen readers, forbids all other operations.
User password: "userpassword", Owner password: "ownerpassword".
"""
document = ap.Document(infile)
document_privilege = ap.facades.DocumentPrivilege.forbid_all
document_privilege.allow_screen_readers = True
document.encrypt(
"userpassword",
"ownerpassword",
document_privilege,
ap.CryptoAlgorithm.AESx128,
False,
)
document.save(outfile)
Enkripsi PDF dengan izin penuh
Enkripsi dokumen PDF sambil mengizinkan izin akses penuh menggunakan Aspose.PDF for Python via .NET. Contoh ini menggunakan enkripsi RC4 128-bit untuk kompatibilitas dengan penampil PDF lama.
- Muat dokumen PDF.
- Tentukan kata sandi pengguna dan pemilik.
- Atur izin akses penuh.
- Pilih algoritma enkripsi.
- Panggilan
encrypt()dengan kata sandi, izin, dan algoritma. - Simpan PDF yang dienkripsi.
import aspose.pdf as ap
def encrypt_pdf_file(infile, outfile):
"""
Encrypt PDF with full permissions.
Args:
infile (str): Input PDF filename
outfile (str): Output PDF filename
Returns:
None
Example:
encrypt_pdf_file("sample.pdf", "sample_protected.pdf")
Note:
Uses RC4 128-bit encryption with allow_all privileges.
"""
document = ap.Document(infile)
document.encrypt(
"userpassword",
"ownerpassword",
ap.facades.DocumentPrivilege.allow_all,
ap.CryptoAlgorithm.RC4x128,
False,
)
document.save(outfile)
Dekripsi File PDF dengan Kata Sandi Pemilik
Untuk menghapus perlindungan kata sandi dan mengembalikan akses penuh:
- Muat PDF terenkripsi menggunakan kata sandi yang benar (pengguna atau pemilik).
- Hapus semua perlindungan kata sandi dan pengaturan enkripsi dari dokumen.
- Simpan PDF yang kini tidak dilindungi ke file output yang ditentukan.
import aspose.pdf as ap
def decrypt_pdf_file(infile, outfile):
"""
Decrypt password-protected PDF.
Args:
infile (str): Input encrypted PDF filename
outfile (str): Output decrypted PDF filename
Returns:
None
Example:
decrypt_pdf_file("sample_protected.pdf", "sample_unprotected.pdf")
Note:
Requires user password to open document.
"""
document = ap.Document(infile, "userpassword")
document.decrypt()
document.save(outfile)
Ubah Kata Sandi File PDF
Perbarui kredensial keamanan (kata sandi pengguna dan pemilik) dari sebuah dokumen PDF sambil mempertahankan konten dan strukturnya.
- Buka PDF menggunakan kata sandi pemilik yang ada, yang memberikan akses penuh ke pengaturan keamanan.
- Ganti kata sandi lama dengan kata sandi pengguna baru dan kata sandi pemilik baru.
- Simpan PDF dengan pengaturan kata sandi yang diperbarui.
import aspose.pdf as ap
def change_password(infile, outfile):
"""
Change user and owner passwords.
Args:
infile (str): Input PDF filename
outfile (str): Output PDF filename
Returns:
None
Example:
change_password("sample_protected.pdf", "sample_changepassword.pdf")
Note:
Changes from ownerpassword to newuser/newowner.
"""
document = ap.Document(infile, "ownerpassword")
document.change_passwords("ownerpassword", "newuser", "newowner")
document.save(outfile)
Tentukan kata sandi yang benar dari Array
Dalam beberapa skenario, Anda mungkin perlu mengidentifikasi kata sandi yang tepat dari daftar calon yang mungkin untuk mengakses PDF yang diamankan. Cuplikan kode di bawah memeriksa apakah file PDF terenkripsi dan kemudian berusaha membukanya dengan mengiterasi melalui daftar kata sandi yang telah ditentukan.
Proses mencakup:
- Gunakan
PdfFileInfountuk mendeteksi apakah PDF terenkripsi. - Buka PDF dengan masing-masing kata sandi menggunakan
ap.Document(). - Jika berhasil, ia mencetak jumlah halaman.
- Jika tidak, ia menangkap pengecualian dan melaporkan kata sandi yang gagal.
import aspose.pdf as ap
def determine_correct_password_from_list(infile):
"""
Test multiple passwords to find correct one.
Args:
infile (str): Input encrypted PDF filename
Returns:
None
Example:
determine_correct_password_from_list("sample_protected.pdf")
Note:
Tries passwords: test, test1, test2, test3, userpassword.
Prints page count if password is correct.
"""
info = ap.facades.PdfFileInfo(infile)
print(f"File is password protected {info.is_encrypted}")
passwords = "test", "test1", "test2", "test3", "userpassword"
for password in passwords:
try:
document = ap.Document(infile, password)
count = len(document.pages)
if count > 0:
print(f"Number of Page in document are = {count}")
except RuntimeError as ex:
template = "An exception of type {0} occurred. Arguments:\n{1!r}"
message = template.format(type(ex).__name__, ex.args)
print(message)