Practical PHP Programming

另一种数据散列算法

string md5 ( string source [, bool raw_output])

尽管推荐用sha1()来进行数据散列算法,但另一种算法MD5也很流行。MD是消息摘要“Message Digest”的缩写。md5()产生数据散列的方式同sha1()相同,只是md5()返回的结果只有32个字节。因为sha1()的位数更长,所以相对来说不容易发生“碰撞”——一种两个不同的字符串得到同样的哈希值的情况。

md5()的用法也和sha1()一样:

<?php
    $md5hash = md5("My string");
    print $md5hash;
?>

如果你认为MD5的位数少,所以更不安全的话,你是对的——但这仅仅是理论上的结果。MD5的哈希值有32字节长,相当于128位,也就是说,一串MD5哈希值有3.4028236692093846346337460743177e+38种不同的可能,也就是2的128次方。这个数已经足够大了,所以可以放心使用。