How does one know whether a PDF file has DRM? I have some PDF files, I want to check if they are protected by DRM or not, how can I check these PDF files quickly?

image

PDF DRM how do you know?
Tagged on:

3 thoughts on “PDF DRM how do you know?

  • December 30, 2017 at 11:35 am
    Permalink

    If you can open the PDF in Adobe Reader, go to Document Properties, security tab and look at “Security Method” if it says anything besides “No Security”, it is encrypted (and DRM protected) using the named Security handler. Note: Adobe currently provides 4 security handlers (Password, Certificate, Live Cycle, and eBooks), and there are a multitude of 3rd party security handlers.

    If you cannot open it in Adobe Reader, assuming it is a valid non corrupt PDF file, it is probably DRM protected.

    If people are interested, I can give the true Geek answer of how to walk the PDF structure in a text editor to find out all of this information.

  • December 30, 2017 at 11:36 am
    Permalink

    Use “pdfinfo”, it comes with poppler in my linux:

    Code:
    $ pdfinfo dantesinferno00dantuoft.pdf
    Producer: Recoded by LuraDocument PDF v2.28
    CreationDate: Thu Dec 6 09:34:21 2007
    ModDate: Thu Dec 6 10:11:03 2007
    Tagged: no
    Pages: 372
    Encrypted: no
    Page size: 640 x 912 pts
    File size: 37026003 bytes
    Optimized: yes
    PDF version: 1.5

  • December 30, 2017 at 11:37 am
    Permalink

    Open the PDF file in a text editor.
    Search for “/Encrypt”
    – If you don’t find it then your PDF is not encrypted.

    If you find it then you are most likely in the “Trailer” dictionary which is at the end of the file. There should be entries that look like:

    /Root 74 0 R /Encrypt 96 0 R /Info 1 0 R

    These specify which objects are the import one in the file.

    To find a object search replace the R with an ‘obj’ and search (most likely backwards) in the file. So if I was searching for the Encryption Dictionary in the above example, I would search for “96 0 obj”

    Which would get you something like
    96 0 obj
    << /Filter /Standard /V 2 /R 3 .... >>

    The interesting bit is the value for /Filter – in this case it is /Standard meaning the file uses the ‘Standard’ security handler which is Password Protection.

Comments are closed.