'only algorithm code 1 and 2 are supported

I would like to read the pdf file. This is a book.pdf with a password (256 bit AES encryption). I know a password. I am using Jupyter Notebook.

I get an error:

import PyPDF2
reader = PyPDF2.PdfFileReader('book.pdf')
reader.decrypt('333')
reader.getPage(0)


---------------------------------------------------------------------------
 NotImplementedError                       Traceback (most recent call last)
 <ipython-input-12-7dd54b6a760a> in <module>()
  1 import PyPDF2
  2 reader = PyPDF2.PdfFileReader('book.pdf')
  ----> 3 reader.decrypt('333')
  4 reader.getPage(0)

 c:\users\a\programs\python\python36-32\lib\site-packages\PyPDF2\pdf.py in 
 decrypt(self, password)
 1985         self._override_encryption = True
 1986         try:
 -> 1987             return self._decrypt(password)
 1988         finally:
 1989             self._override_encryption = False

 c:\users\a\python\python36-32\lib\site-packages\PyPDF2\pdf.py in 
_decrypt(self, password)
1994             raise NotImplementedError("only Standard PDF encryption 
handler is available")
1995         if not (encrypt['/V'] in (1, 2)):
-> 1996             raise NotImplementedError("only algorithm code 1 and 2 
are supported")
1997         user_password, key = self._authenticateUserPassword(password)
1998         if user_password:

NotImplementedError: only algorithm code 1 and 2 are supported


Solution 1:[1]

Recently, I also faced the same issue. I am not sure why the error occurs, but here is a way to mitigate it, using a different module than PyPDF2 :

import pikepdf
pdf = pikepdf.open('book.pdf',password='333')
pdf.save('book_without_pass.pdf')

The above code save the encrypted pdf book.pdf with the password, '333' to book_without_pass.pdf

Solution 2:[2]

I had the same issue, then changed PDF options on Encryption Level: 40 bit RC4 and it helped. I think it relates with PyPDF2 module.

Solution 3:[3]

NotImplementedError This is because module does not support the files encrypted format
You have to try different modules

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 Dmitrii P.
Solution 3 Sven Eberth