Theme: Preventing Unauthorized Leaks of Unreleased Posters
Scenario: Xiao Ming, the person responsible for movie promotional posters, wants to prevent the original poster files from being leaked before the release date. He embeds hidden messages (QR codes) into the poster files sent to different recipients: the printing company, the production company, and the movie director. Each poster contains a unique QR code corresponding to its recipient, allowing the source of any leak to be traced.
- Xiao Ming uses
encrypt.goto embed QR codes in the original poster and sends them to:- Printing company (QR:
PRINT) - Production company (QR:
COMPANY) - Movie director (QR:
DIRECTOR)
- Printing company (QR:
- If a poster leaks before the release date, the leaked file (
marked.png) is downloaded. decrypt.gois used to decode the QR code in the leaked poster to determine which recipient leaked it.
-
encrypt.go: Embeds three different QR codes into the original poster for each recipient (printing company / production company / director).
Command:go run encrypt.go
Output: Three stego posters (e.g.,
marked_print.png,marked_company.png,marked_director.png) -
decrypt.go: Decrypts a leaked poster file (e.g.,
marked.png) to extract the embedded watermark (QR code) and identify the source of the leak. Command:go run decrypt.go
Output: Decoded watermark (text or image)
steganography/
├── encrypt.go # Steganography encoder
├── decrypt.go # Decoder for extracting watermark
├── poster.png # Original poster (example)
├── README.md
- Privacy & Legal: Consider data protection and legal regulations when handling sensitive or confidential files.
- Security: For more accurate tracking, embed encrypted or signed QR codes with timestamps to prevent forgery.
- Backup: Keep original unmarked posters and a record of unique IDs for each recipient for verification.