使用 SHA-256 加密创建和检索密码的 php 命令有哪些?

发布于 2024-11-02 02:24:28 字数 106 浏览 5 评论 0原文

这里是新手。我尝试在用户创建帐户后使用 SHA-256 加密用户密码,然后当用户尝试登录时,它将尝试将他们的输入与 mysql 数据库中的任何加密密码进行匹配。我想知道是否有人可以给我一个示例代码?

Newbie here. I'm trying to encrypt the user password using SHA-256 after they've made their account and then when the user tries to log in, it will try to match their input with any of the encrypted passwords in the mysql database. I was wondering if someone could give me an example code?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

空心空情空意 2024-11-09 02:24:28

散列是单向工作的,因此您无法真正“检索”已散列的内容。

当您在注册时保存密码时,请使用如下内容:

$hash=hash('sha256', $password);

并且仅将 $hash 保存在数据库中。当用户尝试登录时,对他尝试使用的密码进行哈希处理,并将其与数据库中的密码进行比较(对于相同的输入,哈希处理始终会给出相同的结果)。如果它们相同,则他可以登录(如果满足所有附加检查)。

如果你想让用户恢复他忘记的通行证,请参考这个之前的问题

另外,散列密码的最佳实践是使用某种salt,这超出了这个问题的范围,但请谷歌一下。

Hashing works one-way, so you cannot really 'retrieve' what you have hashed.

When you save the password on registration, use something like this:

$hash=hash('sha256', $password);

And only save $hash in the database. When the user tries to log in, hash the password he tries to use and compare it to the one in the database (hashing will always give the same result for the same input). If they are the same, he can be logged in (if all additional checks are satisfied).

If you want to let the user recover his forgotten pass, refer to this earlier question.

Also, the best practice in hashing passwords is to use some kind of salt, which is out of the scope of this question, but please google it.

梦巷 2024-11-09 02:24:28

如果使用 PHP >= 5.5,则应使用 password_hash() 存储密码,并使用 password_verify() 进行检查。如果使用 PHP >= 5.3,您应该使用此兼容性模块。如果使用早期版本的 PHP,您应该升级。

不要自行进行密码散列。这一点再强调也不为过。看一下 John the Ripper,了解仅使用加密哈希进行哈希处理的密码有多快(即被设计得很快!)可以被破解。

If using PHP >= 5.5, you should be using password_hash() for storing passwords, and password_verify() to check. If using PHP >= 5.3, you should be using this compatibility module. If using an earlier version of PHP, you should upgrade.

Do not roll your own password hashing. There is no stressing this enough. Take a look at John the Ripper to see how fast passwords that have only been hashed with cryptographic hashes (that are designed to be fast!) can be cracked.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文