使用SHA-256加密创建和检索密码的php命令是什么?


what are the php commands to create and retrieve password with SHA-256 encryption?

新手。我试图加密用户密码使用SHA-256后,他们已经使他们的帐户,然后当用户尝试登录,它会尝试匹配他们的输入与任何在mysql数据库中的加密密码。我想知道是否有人能给我一个示例代码?

散列是单向的,所以你不能真正'检索'你已经散列的内容。

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

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

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

如果你想让用户恢复他被遗忘的通行证,参考前面的问题。

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

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

不要滚动自己的密码散列。再怎么强调也不为过。看看开膛手约翰(John the Ripper),看看只用加密散列(设计得很快!)进行散列的密码有多快就能被破解。