PHP MD5性能=是否需要处理器



md5()通常用于密码,短字符串

但这次我想加密(不需要解密)一个大字符串,就像整篇文章一样。。。(更不用说我需要每隔几秒钟做一次)

这会是个问题吗?还是处理器需要更多的工作/更长的时间来md5一个大字符串和一个短密码?

我读md5真的很快。。

对于那些好奇的人,我试图生成一个有问题的字符串的"签名">

天哪。

  1. 嗯,MD5是而不是加密
    (根据定义,加密是可逆的。)

  2. 不要使用MD5或SHA进行密码哈希-它们太快了
    (对于这样的任务来说,MD5是完全坏掉的。)

哈希算法(包括MD5)花费的时间与输入大小或O(n)成比例。这意味着,对100MB进行散列所需的时间大约是对50MB进行散列的"两倍"。对于内存中的PHP字符串,这将是"眨眼之间"(因为I/O很可能是瓶颈)-您需要在真实环境中对真实数据运行性能基准测试来量化它。

MD5确实"非常非常快";该算法相对简单,并且与许多哈希算法一样,设计为快速。在出现真正的性能问题之前,不要担心性能问题-现代CPU的速度非常快。此外,虽然MD5(和SHA)很快,但在无限循环中背靠背运行MD5当然会"吃掉"所有的CPU;如果有工作要做,那么空闲的CPU就是浪费的CPU。

然而,考虑"通用"签名哈希的SHA(首选SHA-2)-它只稍微慢一点(按常数因子计算),但它是一种更好的算法,即使修剪到相同的输出空间,也可以防止未来出现问题。

最新更新