Inspiration
In today’s digital world, security is paramount, yet weak or recycled passwords remain a leading cause of data breaches. I was inspired to create a tool that tracks password history and helps users create stronger, more secure passwords, while ensuring they don’t accidentally reuse similar ones.
What it does
The Password Similarity Tracker enables users to securely manage their passwords by tracking their password history and preventing the reuse of old or similar passwords. It uses the Levenshtein distance algorithm to measure the similarity between new and previous passwords, ensuring that passwords remain unique and secure over time. This feature ensures users adhere to better password practices and reduces the risk of predictable password reuse.
How we built it
I built the Password Similarity Tracker using Node.js and Express.js for the backend, with MongoDB Atlas as the database to securely store user credentials and password histories. Passwords are hashed using bcrypt.js to ensure maximum security. The Levenshtein distance algorithm was integrated using the fast-levenshtein library to compare new passwords against the history of previous ones for similarity. Additionally, JSON Web Tokens (JWT) were used to handle user authentication and session management. The app is designed as a backend-only solution but can easily integrate with a frontend in the future.
Challenges we ran into
One of the main challenges I faced was efficiently implementing the password similarity detection feature while ensuring optimal performance. Handling edge cases, such as ensuring that password changes were both secure and user-friendly, also proved tricky. Another challenge was dealing with schema validation issues in MongoDB and ensuring data integrity while storing password history.
Accomplishments that we're proud of
I am proud to have successfully implemented a robust password similarity detection system that helps users avoid predictable password reuse. The ability to handle password management securely, using hashed passwords and JWT authentication, is another significant achievement. Additionally, I managed to design and deploy a functional backend that addresses a critical security need while maintaining simplicity and scalability.
What we learned
Through this project, I learned the importance of secure password storage and the challenges involved in implementing user authentication. I gained valuable experience with algorithms like Levenshtein distance and how they can be used in practical applications. I also deepened our understanding of MongoDB, bcrypt.js, and best practices for backend development. This project reinforced the importance of balancing security and usability to create effective software solutions.
What's next for Password Similarity Tracker
The next steps for the Password Similarity Tracker include adding features like multi-factor authentication (MFA) to further enhance security. I also plan to introduce password expiry notifications, reminding users to update their passwords periodically. In the future, I aim to build a user-friendly frontend interface and incorporate advanced password strength metrics to help users create even more secure passwords.
Log in or sign up for Devpost to join the conversation.