Best Way to Store a Small Number of User Credentials in C#

cdata structuresSecurity

I'm working on a messaging application, based on a server/client architecture.
Now I am thinking about the way how to store the user credentials.
It's not a huge number, just about 20 entries with their User-IDs, Usernames and hashed passwords.

Storing it with a SQL Server in my opinion is overkill.
Is it better to store it in sort of a text file or in a SQLite database file?
These methods would keep the server portable and the installation simple.

And is password hashing enough to keep the passwords secret?

What is the best way to handle this?

Best Answer

If you only need to cater for such a small amount of users, you could also consider delegating credential storing to some other service, such as Google or Facebook. This is usually preferred since the user needs to remember one less set of credentials and you have one less thing to worry about.

That being said, this could be problematic if you want to run your application offline (intranet). In that case, I would go to an SQLLite approach. This would also allow your application to scale up to a certain extent, and if you would need to move to a more robust SQL server, you would already have the data in the format required, so the migration would not be that much of a headache.

Lastly, when it comes to storing passwords, if you really must do it yourself, I would recommend using salted hashes to store your database. You should find plenty of examples online to do it with your technology of choice.

Related Topic