【发布时间】:2015-09-27 04:20:45
【问题描述】:
我是 php 密码哈希的新手,因为我也是 php 编码的初学者。我能够制作一个简单的登录表单,它需要用户名和密码。然后,该密码将通过使用 $_POST['password'] 插入到表中来保存到数据库中。但是我读到这是不安全的,因为它是纯文本,您需要对其进行哈希处理。
我尝试研究 php 中的密码哈希。我发现了几篇文章,但对于像我这样的初学者来说,大部分都不清楚。虽然我有一些基本的想法,但无法思考如何实现它。
我的一些问题: 1. 如何对用户输入的密码进行哈希处理? 2. 一旦它被散列,我如何传递它并将它保存到我的数据库中? 3. 然后密码会在我的数据库中保存为哈希(不是纯文本)吗?如果是这样,我是否需要扩展数据库中的字段长度以容纳长哈希密码?
这些是我的一些疑问,显然来自初学者。 我希望有人能启发我或告诉我从哪里开始。我更喜欢基础知识,以便我能够理解。
非常感谢!
编辑:好的,在提供的链接上找到了一些答案。感谢您将其标记为重复,对此我深表歉意。干杯!!
【问题讨论】:
-
这个问题太宽泛了。我建议你从这里开始:owasp.org/index.php/Password_Storage_Cheat_Sheet
-
虽然这篇文章很棒,但还是有点高级
-
@DrewPierce 我同意。然而,密码散列也有点高级。以正确的方式做事很容易,但以错误的方式做事更容易。
-
@EdCottrell 我想更多的是用蜡笔写一篇文章来先把它剪掉:)
-
老实说:只需使用
$hash = password_hash($_POST['password'], PASSWORD_DEFAULT);和password_verify($_POST['password'], $hash);
标签: php html mysql hash passwords