Last week, during one of my practices for impromptu debating, I had to debate about if saving passwords online were safe. At the time, I thought being on the proposition side on why it is safe to keep passwords online was easy, but after listening to the opposition’s arguments, my view on passwords and how online websites, and web apps keep them had changed.
Honestly, I thought that since there are new technology and software concepts being introduced every day, keeping passwords secured would not be such a difficult problem to solve, but it turns out I was wrong.
After listening to the opposition for 12 minutes on why keeping passwords online was not safe, I got the idea of making a personal database for users for their passwords using their own terminal.
Hence, after spending two days of planning and coding, I came up with the terminal program QuickLock!
QuickLock is a personal password database specific to every user logged into the terminal and the program. Generated by the program itself, the database is not connected to any online server and is actually all secured under one hash code that only the user assigned knows how to access. In other words, every time a user logs in, a new database is created in the terminal only specific to the user logged in, making it very private.
Since I am fluent in Python, I made this program in Python3. With the use of hashes, the passwords that the user inputs will be transformed from a string to a hash, making it impossible to track, and remember the password the user inputted especially since I only added a time limit of one second to view the hash code. You might be asking, “if the hash function converts the user’s password, then how will the user themselves access and read their own passwords?”. Good question! Despite transforming the passwords to raw code at the beginning, users can type their desired account and the password will appear just like how they first typed it. However, that still brings up the question about account security, “despite hashing, anyone can take the computer and log in to the terminal and access the passwords since there is no specific account logged into the database, right?”. However, there’s a straightforward answer to that question, not at all. That’s what makes my program so special tough! Despite the fact that there is only one terminal for each computer, this program has an account function where the user of the computer can add multiple accounts for different people that might share the same account on the computer. Each account has a different Linked List, making user interaction with the computer faster and much more private as each user has a different “password database” that the program creates every time an account is created.
Users can access their accounts only by using passwords, which are also hashed and unique to them, making the logging-in feature of the program also secured. Moreover, with the use of dictionaries, the process of finding the right user has decreased the time complexity of the program, overall reducing the output time.
Here is the link to check my program out: https://github.com/GEEGABYTE1/QuickLock
Overall, despite the amount of time I had invested into this project and its complexity, I strongly believe this program will help tones of users and eliminate that fear in people of passwords not being secured online, or at least inspire developers to keep a more secured password database in their programs.