【问题标题】:PHP MD5 Vs MySQL md5PHP MD5 与 MySQL md5
【发布时间】:2011-09-12 09:16:37
【问题描述】:

这是我一直想知道的事情。让 MySQL 处理我的 md5 散列会更快还是应该让 PHP 处理它?

【问题讨论】:

  • 这真的很重要吗(即您是否需要在数十万或数百万行上执行此操作?)
  • 如果md5 用于密码,不要想得快,想得慢(bcrypt 之类的)!
  • 不要忘记解析查询和网络/套接字延迟。
  • @pekka 是的,它有数百万行只是想对 md5 本身进行一些研究,并尝试一些很酷的东西。
  • @Shef 我使用 sha 作为我的密码

标签: php mysql md5


【解决方案1】:

其实我觉得MySQL的MD5实现会更快。

PHP 的原生md5() 的算法实现有点混乱。当使用 PHP5 对 MD5 进行哈希处理时,我建议使用 hash('md5',$var);,这被证明更快。

制定您自己的基准。

this page(底部评论)。

0.33311605453491: hash/md5
1.0671429634094: md5

【讨论】:

  • 接下来我会继续努力,我只是想做一个基本的 burte force 工具。只是为了说明为什么不使用 md5 作为密码,以便在工作中他们可以在线访问 md5 生成器,然后将其复制到我的代码中,我的数据库将列出匹配的密码。
  • 我想总是最好总是使用 hash() 而不是 md5
【解决方案2】:

只是比较性能,不会有任何明显的差异(我认为 mysql 的实现会非常 [...] 快一点点)。

尝试使用可生成更可重复(并且更易于维护)代码的解决方案。对我来说,这是在 php 中做散列之类的事情,但我不知道你的代码是什么样的,所以也许让 mysql 做这项工作对你来说更容易。

PS:如果您将其用于密码,请考虑使用另一个algorithm 来代替hashing(例如sha256)。有关更多信息,请查看 wikipedia 并阅读有关冲突的信息。

【讨论】:

  • 别担心我的密码系统涉及 512 个哈希和盐。
【解决方案3】:

做一些分析来找出答案。但是如果您遇到严重的性能问题,请记住 80-20 规则。那么最好先找出瓶颈在哪里。

我的直觉是里面没有很多东西。就我个人而言,我会将 MD5 与 MySql 放在一起 - 将业务逻辑放在一起。

【讨论】:

  • 这是一个小型的个人项目,只需几个小时就不会花费很长时间,但是是的,80-20 规则杀死了我工作的一些人
猜你喜欢
  • 1970-01-01
  • 2012-07-17
  • 1970-01-01
  • 2010-11-16
  • 1970-01-01
  • 2012-01-31
  • 2011-03-11
  • 1970-01-01
  • 2014-11-18
相关资源
最近更新 更多