MD5 的哈希密码可以替换为 SHA-256 密码吗?

Can a hashed password by MD5 be replaced by SHA-256 password?

提问人:Álvaro 提问时间:2/7/2023 更新时间:2/12/2023 访问量:184

问:

我必须更改项目密码迁移,我想知道是否可以将哈希方法更改为哈希密码。

我认为这是可能的,但如果我必须解密(这是不可能的),或者我可以将 SHA-256 应用于 MD5 哈希密码,我就不这样做。

我将不胜感激任何建议或帮助。 谢谢!

php 安全 哈希 md5 sha

评论

3赞 RiggsFolly 2/7/2023
两者都不要,请不要滚动自己的密码哈希,特别是不要使用或。PHP 提供了 password_hash()password_verify(),为了用户的安全,请使用它们。MD5()SHA1()
4赞 RiggsFolly 2/7/2023
您必须在用户登录时进行更改。当他们下次登录时,请执行您当前的密码检查,如果通过,则验证了纯文本密码。然后将其通过新的哈希过程,并将用户标记为已移动到新机制,以便您下次登录时使用password_verisy()
0赞 Álvaro 2/7/2023
我已经检查了这种方法。谢谢。但这是一个老项目。你建议把MD5保留在这里吗?
1赞 RiggsFolly 2/7/2023
不,MD5 不是一种安全的机制。您在此项目中使用的是哪个版本的 PHP
0赞 Álvaro 2/7/2023
它。。。很难解释。这是一个宏项目,分为较小的项目,其中一个是用普通的PHP 5.5.38编写的,一个是用PHP 7.4.2编写的Symfony项目

答:

2赞 raphiel 2/12/2023 #1

就像评论中已经提到的 RiggsFolly 一样,您应该使用 和 函数而不是某些 MD5 或 SHA1 实现,因为 sha1 和 md5 都不是密码的安全哈希函数,它们应该只用于校验和。password_hash()password_verify()

如何在 php 中使用 bcrypt 进行哈希处理

如果该函数不在 PHP 版本中或已过时,那么您可以为此问题寻找一个安全的实现,该实现不是单人算法并且存在的时间更长。password_hash