A Streamlit-based Secure Data Encryption App that allows users to register, log in, and securely encrypt/decrypt personal data using passkey-protected encryption. Built as part of GIAIC Assignment #5 under the mentorship of Sir Hamzah Syed, this project emphasizes data confidentiality, authentication, and access control.
Secure data means protecting sensitive information from unauthorized access by using encryption and strong authentication methods. It ensures that your data remains confidential, intact, and accessible only to those with the right permissions β giving you peace of mind in a digital world full of threats.
- β User Registration & Login with password hashing (SHA-256)
- π Fernet-based encryption with passkey
- π‘οΈ Brute-force protection with lockout after multiple failed attempts
- π Data saved in JSON format for persistent storage
- π Search and view encrypted entries by title
- π View all encrypted records for the logged-in user
- π Session-based access control using Streamlit session state
- Python 3
- Streamlit β for building the interactive UI
- Cryptography (Fernet) β for secure encryption and decryption
- Hashlib β for password hashing (SHA-256)
- PBKDF2 β for key derivation
- JSON β for user and data persistence
secure-data-encryption/ β βββ src/ β βββ encryption/ β β βββ fernet_handler.py # Fernet encryption/decryption logic β βββ utils/ β β βββ file_handler.py # File I/O and password hashing β β βββ lockout_handler.py # Lockout mechanism for failed login attempts β βββ data.json # Central data and user store βββ app.py # Main Streamlit application βββ README.md # Project documentation
- Create a new account with a unique username and password
- Log in to your account
- Encrypt sensitive data using a custom passkey
- Decrypt stored data by providing the correct passkey
- Search for encrypted entries by title
- View all saved entries and decrypt them securely