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
Release files for peer2drop 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| peer2drop-1.0.0.tar.gz | 16.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| peer2drop-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 33.1 kB
Release files / peer2drop-1.0.0.tar.gz
| Download URL | peer2drop-1.0.0.tar.gz |
|---|---|
| Size | 16.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
03a83480c3851105ac857a1890f53ca508a373e30744e20575a1b35b3ef4aa60
|
|
BLAKE2b-256 checksum How to use checksums |
6f1d5568888f0a5ef7d645a3b44ec159fb333f33972e70f2d8d9d67fcdc54dd2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Release files / peer2drop-1.0.0-py3-none-any.whl
| Download URL | peer2drop-1.0.0-py3-none-any.whl |
|---|---|
| Size | 16.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1915b6c313a78634030196ca93be7debc5c911a84ec42a40e4bbc544e721a96b
|
|
BLAKE2b-256 checksum How to use checksums |
8becdb40514e7938496907b0daeaffbebb7a93918f519d3e71c25c9a900603de
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|