A minimalist, secure, and offline password manager running on ESP32. Store your passwords locally with PIN protection and SHA-256 hashing.
- 🔒 PIN-based authentication with SHA-256 hashing
- 💾 Local storage using SPIFFS (SPI Flash File System)
- 📝 JSON-based password management
- 🖥️ Simple Serial Terminal interface
- ⚡ Fast and efficient operation
- 🛡️ Offline security - no network connection required
- ESP32 development board (tested on ESP32-C3-DevKitC-02)
- USB cable for power and communication
- PlatformIO
- Arduino framework
- Required libraries:
- ArduinoJson (^7.3.0)
- Built-in ESP32 libraries (SPIFFS, mbedtls)
- Clone this repository:
git clone https://github.com/dongitran/Esp32Pass.git-
Open the project in PlatformIO
-
Build and upload to your ESP32:
pio run -t upload- Open serial monitor at 115200 baud rate
- Connect to your ESP32 using a serial terminal (115200 baud)
- Create a PIN when prompted
- Use the PIN to authenticate and access the password manager
create: Add a new passwordget: Retrieve a stored passworddelete: Remove a passwordlist: Show all stored passwordsinfo: Display system information
Enter new PIN > ****
✓ PIN created successfully!
> create
Enter password name > github
Enter password for 'github' > super_secret_456
✓ Password saved successfully!
- PIN is hashed using SHA-256 before storage
- Passwords are stored in protected SPIFFS storage
- Offline operation prevents network-based attacks
- System limitations to prevent memory attacks:
- Maximum 32 characters for password names
- Maximum 8000 characters per password
- Maximum 1000 stored passwords
- Maximum 100KB total storage
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.