I have used this method to encrypt a PDF file with AES 128:
import PyPDF2 pdffile = open(r"input.pdf", "rb") pdfReader = PyPDF2.PdfFileReader(pdffile) pdfWriter = PyPDF2.PdfFileWriter() for pageNum in range(pdfReader.numPages): pdfWriter.addPage(pdfReader.getPage(pageNum)) pdfWriter.encrypt('password') resultPDF = open(r"output.pdf", "wb") pdfWriter.write(resultPDF) resultPDF.close()
…but is there a similarly-simple way to use AES 256?
Thanks in advance!
Advertisement
Answer
I have the same issue. I use pikepdf
to solve it.
import pikepdf with pikepdf.Pdf.open(r"input.pdf") as pdf: pdf.save(r"output.pdf", encryption=pikepdf.Encryption( owner='password', user='password'))
By default, pikepdf
use AES-256 to encrypt.