Many people have PDF files which are password protected but for which they no longer have the password, often for perfectly innocent reasons. So they are ask, can JPedal just ignore the password and display the file.
The answer is no because the password is not stored in the PDF just to check against, but it is woven into the entire fabric of the PDF file by PDF security.
A PDF file consists of lots of PDF objects, which contain all the PDF data. You can learn more about this in Daniel’s excellent set of articles on Making your own PDF.
When the PDF is encrypted, the contents of each object is altered using a numeric key. If you open it, the data is garbage. The process needs to be reversed using the complimentary key. And this key is calculated using a formula which includes the password. It also includes the PDF object number, so each object has its own unique key.
So you need the PDF password to unscramble the data in every object in a PDF file. Otherwise the data is effectively ‘corrupted’ and unusable.
This post is part of our “Understanding the PDF File Format” series. In each article, we discuss a PDF feature, bug, gotcha or tip. If you wish to learn more about PDF, we have 13 years worth of PDF knowledge and tips, so click here to visit our series index!
IDRsolutions develop a Java PDF library, a PDF forms to HTML5 converter, a PDF to HTML5 or SVG converter and a Java Image Library that doubles as an ImageIO replacement. On the blog our team post about anything interesting they learn about.