Skip to main content

How to use the case-sensitive for MySQL password field?


I have user login but user can login with case-insensitive way Means if your password is 'test' then user able to login with 'TEST' password. i want to avoid the such type authentication on my password field



Thanks in advanced ......


Source: Tips4allCCNA FINAL EXAM

Comments

  1. The easiest way is to use the binary keyword in your query use:

    SELECT /*fields*/ FROM table WHERE /* where clause */ BINARY password = "userpassword"


    OR

    use the strcmp in your PHP code:

    You can use this also if you store hashed or encrypted password which I recommend.

    ReplyDelete
  2. I guess you are storing passwords in clear. That's not only pretty insecure, it's also unnecessary in most situations. My advice is to store passwords in two columns, e.g.:

    password_salt VARCHAR(16)
    password_hash VARCHAR(40)


    Before storing a new password, take the password provided by the user ($clear_password), create a random string ($salt) and use both to create a hash (sha1sum($salt . $clear_password). Store both the salt and the hash and discard the clear password.

    To validate a password, retrieve the stored salt for the given user, generate the hash and see if it matches with the hash in DB.

    This technique is called salted passwords.

    ReplyDelete

Post a Comment

Popular posts from this blog

Slow Android emulator

I have a 2.67 GHz Celeron processor, 1.21 GB of RAM on a x86 Windows XP Professional machine. My understanding is that the Android emulator should start fairly quickly on such a machine, but for me it does not. I have followed all instructions in setting up the IDE, SDKs, JDKs and such and have had some success in staring the emulator quickly but is very particulary. How can I, if possible, fix this problem?