Many people get hacked due to having weak passwords and using a common password for multiple sites. Those kinds of passwords can be easily cracked by qualified hackers. This can give someone unauthorized access to another person's personal information. We felt that we should try to help people obtain stronger passwords to protect their accounts. We also wanted to make sure that people can store these strong passwords along with the site and username so that they won't forget them.
What it does
Our app generates a random password from a choice of numbers, upper case and lower case letters, and special characters. There is also an option to adjust the password length. With these options, the user can create a strong password just by shaking the tablet or clicking a button. The user can then enter their site and username. Then, you can save both to the database (tinyDB)! They can then copy the username and/or password to a clipboard from there, or even delete them if they made a mistake. The user also has the option to copy a password and paste into one of two password strength checkers to see just how strong it is. This easy process will allow a user to create and save strong credentials for multiple accounts. It is a fun method that can be easily accessible through a phone or tablet.
How we built it
We were brainstorming ideas and chose this idea because we wanted to challenge ourselves. The initial idea for this app was to create something like an educational guide on cyber security, but we eventually decided on something more practical. Our first hurdle was how to create random characters, but we figured it out by working together as a team to break it into parts. If we were to assign characters to certain indexes in a list and generate numbers in that range, then we could generate random characters. Our next hurdle was creating the database. We had to figure out a way to save both the site name/username and the password to the tinyDB. We eventually figured this out by creating a method that saved both the username and password to the database. This teamwork would prove to be quite helpful in the development of our app as everybody had different strengths and weaknesses and we all contributed what we could into the app. We all had different skills in communication, coding, graphical design, planning, and time management. After this, development of the app was pretty streamlined with the coding being done first, then the aesthetics of the app after it.
Challenges we ran into
One challenge we ran into was learning how the accelerometer of MIT App Inventor functions. Through research were able to incorporate the accelerometer function into the app. Another challenge we faced was creating the clipboard function. However, we eventually found and imported a clipboard into our software. Another challenge we faced was in the look and feel of the app. We collaborated and decided this together.
Accomplishments that we're proud of
We were all able to work together productively and without any conflicts. Despite a widespread pandemic, we met on Zoom weekly and made sure that we were on track to complete this project. We came up with a product that helps people and we are proud of it.
What we learned
We learned new skills such as creating a function that uses an accelerometer, creating switches that control certain features of the app, creating a random number range that corresponds to characters in a list, and how to use tinyDB. We also learned how to work together as a group to achieve a goal.
Improvements from Cryptoshake Version 1
Cryptoshake Version 1 was just a random password generator. In addition to a random password generator, Cryptoshake 2.0 also has a prompt, where you can enter the site name and username. You can then save this along with the generated password to our database. You can also choose to copy and/or the delete the site name/username and password. If you are unsure how strong the newly generated password is, you can also check the password strength by copying the password into one of two password strength checkers: How secure is my password? or GRC Haystacks.
What's next for Cryptoshake 2.0
We would like to make our app more secure by adding a password vault seamlessly into to user interface.