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
.drm
package. - When the recipient opens the
.drm
file 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 DRM
python -m venv .env
#Activate (Windows)
.env\Scripts\activate
#Activate (MacOS/Linux)
source .env/bin/activate
pip install -r requirements.txt
cd appfile
python app.py