A standalone offline Digital Rights Management (DRM) desktop application built using Python, CustomTkinter, and AES encryption. This tool allows secure sharing and controlled viewing of PDF documents, with features to restrict printing, copying, and unauthorized access.
- Python
- CustomTkinter
- PyMuPDF (fitz)
- Cryptography
DRM
├── .gitignore
├── Readme.md
├── appfile
│ ├── app.py #Main entry point
│ ├── decryptor.py #File: Decryption Logic
│ ├── decryptorView.py #GUI for file decryption window
│ ├── encryptor.py #File: Encryption Logic
│ ├── senderView.py #GUI for encryption window
│ ├── viewer.py #GUI window for PDF Viewer
├── requirements.txt- Admin encrypts the PDF and embeds metadata (Password, Access Time)
- The application return a
.drmpackage. - When the recipient opens the
.drmfile using the application:- On the first open, the user is prompted for a password.
- Upon successful authentication, the device's MAC address is registered.
- For all future accesses, the app verifies the MAC address and access time before opening the file.
- Offline DRM enforcement
- AES Based PDF Encryption
- File access restricted to assigned MAC Address and assigned time period
- Builtin PDF Viewer
- Avoids Text Copy
- Avoid Content Printing
2. Virtual Enviroment (optional but required)
git clone https://github.com/zorro1107/DRM.git
cd DRMpython -m venv .env
#Activate (Windows)
.env\Scripts\activate
#Activate (MacOS/Linux)
source .env/bin/activatepip install -r requirements.txtcd appfile
python app.py