I had posted here about an year ago for my last year's final IT project, and followed almost all of the feedback posted. So I thought why not try this again.
I'm working on a simple data storing program for my senior year (Secondary School / Grade 12), and there is a user sign-in functionality I've decided to implement. The way I've done this is by storing the usernames and passwords in a text file. They are stored as follows:
The usernames, I've decided to leave as plain text, as is decided by the user upon registration. The passwords however, I've decided to encrypt by inserting a special character ( '/' , '?' , ':', ...) between each of the characters entered by the user. This is simple to code as, I've done :
EXAMPLE Example:
User entered password : Mayur
Stored password (in file after encryption) : 77476547894785478247 //while using only the special character `/`
Password converted into `int` format : 7765898582 //each 2 digits corresponds to a character in the user entered password
Decrypted password : 7765898582
Passwords match! Valid!
User entered password : Mayur Stored password (in file after encryption) : 77476547894785478247 //while using only the special character `/` Password converted into `int` format : 7765898582 //each 2 digits corresponds to a character in the user entered password Decrypted password : 7765898582 Passwords match! Valid!
MAJOR DRAWBACKSMajor drawbacks:
At the moment, I have difficulties with decrypting for lower case alphabets due to triple digit ASCII values
Password size small due to overflow conditions of the integer format the decryted password is stored to verify.
At the moment, uses same special character to separate alphabets of actual password
What I'd like from you guys, isto pretty much to judge the system, and maybe if someone will, post an estimate as to how hard this system would be to crack (given that the special characters will be random), and if there are more efficient ways to go about making this system more secure. (I might decided to encrypt usernames as well).