Mysql 密码错误。。。?

Mysql 密码错误。。。?,mysql,login,passwords,case,Mysql,Login,Passwords,Case,我有一个MySQL表,用于存储程序的登录信息。密码数据类型为varchar。当我尝试登录到我的密码时,它不在乎我的字符是小写还是大写。如果我输入正确的字母,它会让我登录。解决这个问题的办法是什么?非常感谢您的帮助发生这种情况是因为默认情况下mysql是: 到目前为止,最简单的选择是不要将密码存储在纯文本中!加密或散列它们,并存储散列/加密值 存储密码哈希的简单方法是使用内置的md5函数: mysql> SELECT MD5('secret'); +--------------------

我有一个MySQL表,用于存储程序的登录信息。密码数据类型为varchar。当我尝试登录到我的密码时,它不在乎我的字符是小写还是大写。如果我输入正确的字母,它会让我登录。解决这个问题的办法是什么?非常感谢您的帮助

发生这种情况是因为默认情况下mysql是:

到目前为止,最简单的选择是不要将密码存储在纯文本中!加密或散列它们,并存储散列/加密值


存储密码哈希的简单方法是使用内置的
md5
函数:

mysql> SELECT MD5('secret');
+----------------------------------+
| MD5('secret')                    |
+----------------------------------+
| 5ebe2294ecd0e0f08eab7690d2a6ee69 |
+----------------------------------+
1 row in set (0.40 sec)
那么,您的查询将是:

SELECT * FROM `sometable` WHERE `the_password` = MD5('secret');
注意,这是一个单向散列-也就是说,您实际上无法从散列版本中获取单词
secret
。因此,例如,您不能使用此选项在用户注册欢迎电子邮件中显示密码


MySQL支持一些您应该查看的功能。

请详细说明。你的问题很模糊!不要将密码存储为纯文本首先,谢谢你的回答。我对Java和MySQL不熟悉。你能发布如何加密或散列密码并存储吗?:)
SELECT * FROM `sometable` WHERE `the_password` = MD5('secret');