【问题标题】:Encrypting data with PHP and MYSQL (SHA1, MD5, MCRYPT_RIHNDAEL_256)使用 PHP 和 MYSQL 加密数据(SHA1、MD5、MCRYPT_RIHNDAEL_256)
【发布时间】:2016-03-14 21:43:22
【问题描述】:

我对编码数据的最佳实践有点困惑,我正在处理非常敏感的数据,因此需要做/学习保护数据的最佳方法:

  1. 我目前正在使用 SHA1、MD5 和 hashBCRYPT 的组合对所有密码进行哈希处理,所有这些密码都使用带有大型混合字符键的盐。

  2. 我目前使用 PHP MCRYPT_RIJNDAEL_256 加密的所有个人数据

是否值得我添加 AES_ENCRYPT 以便数据也使用 MYSQL 加密?我读过几篇文章,说当您需要定期搜索和获取数据时,PHP 是更好的方法。

任何帮助将不胜感激!

【问题讨论】:

标签: php mysql encryption hash sha1


【解决方案1】:

您不应该滚动自己的密码散列。使用PHP内置的password_hash()函数:http://php.net/manual/en/function.password-hash.php

至于加密用户信息,你可能也不想滚动你自己的库,有许多现有的用于加密的 PHP 库可以让你免于犯错,例如 Defuse、PHPSecLib、PHPCrypt 等。

【讨论】:

  • 使用多种散列方法有什么缺点?
  • 这样做不会对您有任何好处。 MD5 不足以进行密码散列。 PHP 的password_hash() 是专门为密码哈希而设计的,以后会自动升级,让您免去以后的麻烦。
  • 请不要试图发明新的安全方案。很有可能你最终会得到一些根本不安全的东西,或者至少不像你期望的那样安全。加密是一门微妙的艺术,我们应该依靠一些专家已经过验证的可信库。
  • @MuhammadSumonMollaSelim 以这种方式思考是错误的。仅仅向它扔更多的散列方法,这些方法不是为密码散列而设计的(相反,与 MD5 一样,它是为高速散列而设计的,并且存在许多安全漏洞)并不能增强安全性。 PHP 的password_hash() 已经完成了所需的工作。它会自动为您运行适当的哈希方法数百/数千次。
  • @FredPerryMunnelly “你有推荐的图书馆吗?” paragonie.com/blog/2015/11/…
猜你喜欢
  • 1970-01-01
  • 2015-08-05
  • 2021-07-03
  • 2013-03-18
  • 2011-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-27
相关资源
最近更新 更多