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