【问题标题】:Which one is better? using your own encrypting algorithm or using md5/sha1? [closed]哪一个更好?使用您自己的加密算法还是使用 md5/sha1? [关闭]
【发布时间】:2017-08-15 17:43:17
【问题描述】:

我希望我的密码在数据库中是安全的。即使有人泄露了密码,我也不希望任何人能够解密它们。

【问题讨论】:

  • 不要使用 md5。只需使用 PHP 的 password_hash 和 password_verify。
  • md5 / sha1 是散列算法,而不是加密。如果您询问是否对 SO 进行自己的加密,答案是否定的。
  • 对于您不使用加密的密码,您使用安全散列并且请勿使用您自己制作的密码。现有的算法已经过严格的测试和评估,其中许多都适合目的,你不能在你自己设计的任何东西中提供这样的保证。 password_hash 和 password_verify 是 PHP 中建议的方法。
  • 哪个更好?开始学习加密和散列之间的区别......在不知道这一点的情况下,编写自己的加密肯定不会是安全的

标签: php mysql encryption


【解决方案1】:

密码是散列的,而不是加密的。有一个很大的不同。您必须了解可以通过解密来检索加密的字符串。这在散列时是不可能的。大多数情况下,哈希是不可逆的,并且通过匹配哈希来检查密码。 MD5 等哈希方法已被破解,因此不再安全,因为密码可以“取消哈希”。

您不应尝试制作自己的散列算法,因为它很可能存在重大安全漏洞。当今的算法已经由无数安全和密码学专家开发,并被一遍又一遍地分析。您的后院算法比专家开发的算法更安全的可能性只有 0%。

只需使用 PHP 默认方法 password_hash 和 password_verify。 散列函数自己生成一个随机盐,附加到散列密码。因此,这是一种非常安全的方法,也是您最好的选择。

【讨论】:

  • 添加段落,谢谢建议。
猜你喜欢
  • 2010-09-28
  • 2021-06-09
  • 2010-10-12
  • 2011-03-05
  • 1970-01-01
  • 1970-01-01
  • 2014-12-07
  • 1970-01-01
相关资源
最近更新 更多