I've just inherited a project where all the passwords on the server side are simply converted to base64 and put in the database. No salt, no hash, nothing. Just a simple db.Add(password.ToBase64)
kind of process.
Surely anyone who gets their hands on that data can extremely easily decode it? Hence the usual salt/hash approach.
I questioned the decision to use base64 strings and was told:
Regarding password - If someone is already on your server, you are already under threat irrespective or the encryption you choose. Its same even with someone penetrates your SSL layer itself.
This seems to ignore the fact that hacking into a server is not the only way to access a database. It could be as easy as going through someone's unguarded computer, stumbling across a database backup and seeing the blindingly obvious base64 strings, then joyously converting them all to raw passwords.
I know this question is probably a little bit too open-ended for the ususal StackExchange format, but the issue doesn't seem to be very well covered on here with the question wording I've used. It's a pretty important topic so I thought I'd throw it up.
To me it's utterly obvious that passwords shouldn't be stored using only base64 conversion, but I'm still relatively new to all this so maybe I've missed something.
Thanks.