【发布时间】:2011-10-02 03:38:24
【问题描述】:
我们在代码的许多部分都使用 md5 作为哈希算法。
在这种情况下安全不是问题。我们只是使用 md5 作为一种生成唯一标识符的方法来存储 apc 等中的各种项目。
碰撞是个问题。虽然不太可能,但它会导致一些重大问题。
有人想推荐一些在 cpu 上更轻的东西吗?
谢谢。
我们刚刚对 md5 与 crc32 进行了一些测试。
使用以下 sn-p:
<?
$start=microtime(true);
for($i=1;$i<=1000000;$i++){
md5(rand(10000000,99999999)); <--- crc32 tested here too.
}
$end=microtime(true);
echo $end-$start."\n";
?>
结果如下:
md5:
1.4991459846497
1.7893800735474
1.4672470092773
crc32:
0.97880411148071
0.94331979751587
0.93316197395325
所以看起来 crc32 比使用 md5 快 1/3。
【问题讨论】:
标签: php performance md5 hash