Secure P2P file transfer with end-to-end encryption and Device ID system
Project description
Peer2Drop
Secure P2P file transfer with end-to-end encryption and Device ID system.
Features
- AES-256 + RSA-2048 end-to-end encryption
- Device ID System - IP addresses hidden from users
- Zero configuration - works immediately
- Cross-platform - Windows, Linux, macOS
- Real-time transfers with progress tracking
- Minimalist interface - pure black design
Quick Start
# Install dependencies
pip install -r requirements.txt
# Run application
python3 p2p_transfer.py
Usage
- Launch app - Device ID appears at top
- Click "Copy ID" and share with peer
- Paste peer's Device ID and click "Add Peer"
- Select peer and click "Connect"
- Add files and click "Upload All"
How It Works
Device ID System
Each instance generates a unique Device ID that encodes the IP address and port:
Device ID: MTkyLj-E2OC4x-LjUzOj-UwMDAZ
(contains: 192.168.1.53:5000)
Users only share Device IDs - IP addresses remain hidden.
Security
- Handshake: RSA-2048 key exchange
- Transfer: AES-256 symmetric encryption
- Verification: SHA-256 file hashing
Interface
Device ID: MTkyLj-E2OC4x-LjUzOj-UwMDAZ | Port: 5000
[Files] [Peers] [Transfers]
Name Size Hash
document.pdf 2.3 MB 9d5f6c4a
photo.jpg 1.1 MB 3e8a2b7f
[Add File] [Scan Folder] [Open Folder]
Server:5000 | Peers:2 | Files:5 (12.3MB) | AES-256
Configuration
Files stored in ~/.p2p_transfer/:
shared/- Files to sharedownloads/- Received filespeers.json- Peer registry
Default port: 5000 (auto-increments if busy)
Architecture
p2p_core.py Backend (networking, crypto, files)
p2p_transfer.py GUI application (PyQt6)
Key Components
- DeviceID - Generate and encode Device IDs
- CryptoManager - AES-256 + RSA-2048 encryption
- FileManager - File scanning and metadata
- P2PConnection - Peer-to-peer connection handling
- P2PServer - Accept incoming connections
- P2PClient - Initiate outgoing connections
Troubleshooting
Peer stays offline:
- Ensure both apps running
- Check firewall allows port 5000
- Verify same local network
Files not sending:
- Click "Connect" first
- Wait for "online" status
- Check files in shared folder
Dependencies
cryptography==41.0.7
psutil==5.9.6
PyQt6==6.6.1
pyperclip==1.8.2
License
MIT License
Repository
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file peer2drop-1.0.0.tar.gz.
File metadata
- Download URL: peer2drop-1.0.0.tar.gz
- Upload date:
- Size: 16.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
03a83480c3851105ac857a1890f53ca508a373e30744e20575a1b35b3ef4aa60
|
|
| MD5 |
a44022a5c71f0bbe3e607640b3545b04
|
|
| BLAKE2b-256 |
6f1d5568888f0a5ef7d645a3b44ec159fb333f33972e70f2d8d9d67fcdc54dd2
|
File details
Details for the file peer2drop-1.0.0-py3-none-any.whl.
File metadata
- Download URL: peer2drop-1.0.0-py3-none-any.whl
- Upload date:
- Size: 16.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1915b6c313a78634030196ca93be7debc5c911a84ec42a40e4bbc544e721a96b
|
|
| MD5 |
489a0005c95119ab293cd5ec5095307d
|
|
| BLAKE2b-256 |
8becdb40514e7938496907b0daeaffbebb7a93918f519d3e71c25c9a900603de
|