我正在为自己的网站创建一个登录系统,以便可以通过表单对其进行更新。我已经手动将自己添加到我称为用户的数据库中的一个表中,尽管永远只有我,并且我添加了我的密码纯文本。但是,我已经阅读了关于散列密码的内容,但据我所知,这只能通过 php 函数完成,我可以只使用 sql 部分在 phpMyAdmin 中完成吗?
6 回答
如果您编辑表格的结构,应该有一个名为“功能”的列。在那里您可以选择 MD5,并且存储在该字段中的任何值都将变为散列。因此,如果您的表中已经存储了密码,它也会被散列。
像这样:http ://www.xodino.it/wp-content/uploads/file/ubuntuftp/pureftpd-02.png
看看这里: http ://dev.mysql.com/doc/refman/5.1/en/password-hashing.html
但是如果你想用 PHP 来做,请看这里。这是一篇关于密码哈希的好文章:http: //phpsec.org/articles/2005/password-hashing.html
您应该对密码进行加盐,然后对其进行哈希处理。使用 MD5 或 SHA1 的密码不再安全 - 您应该为每个密码生成一个唯一的盐,并使用 Bcrypt 创建一个强哈希。
这篇文章给出了一个不错的解释: http://www.bentasker.co.uk/blog/security... 但是自己做一个谷歌搜索会给你很多关于在数据库中存储密码的结果。
您可以将 Type 更改为 BINARY 并将其长度设置为 60。如果您的应用程序将保持私有状态,则可以使用 MD5、SHA1 或 PASSWORD 函数。此处的官方 MySQL 文档中提供了加密和压缩功能的描述:http://dev.mysql.com/doc/refman/5.5/...
我认为最简单的是编辑你的表格,应该有一个名为“功能”的列。在那里,您可以从下拉列表中选择 MD5,然后单击 GO,存储在该字段中的任何值都将变为散列。因此,如果您的表中已经存储了密码,但是如果您尝试再次将转换后的散列文本更改为 CHAR,它将更改原始密码并且将正确的密码放在 php 端将失败
我可以知道你在这里想要什么吗?您想使用 SQL 来加密您的密码吗?那么,在保存密码之前,你会调用这样的东西吗?
select * from user where username='me' and password=md5($mypass)
如果这是您想要的,那取决于您的 SQL 引擎。MySQL 有一个叫做 MD5 的函数来帮助你完成这项工作。
UPDATE Desarrollo.Login SET password = md5('mypassword') WHERE Login.id = 1;
我认为这会有所帮助。