"If the optional raw_output is set to TRUE"
第二个参数设为true即可
"The optional raw_output parameter was added in PHP 5.0.0 and defaults to FALSE"
第二个参数是php5才加上的

解决方案 »

  1.   

    如果是php4,你可以把32位的前后16运算一下,比如异或,得到16位的一个串,
    当然在验证的时候也要同样处理
      

  2.   

    我的问题是
    需要在php4中得到
    php5中
    md5 ( $str,true);
    一样的效果
    有没有人已经写了现成的函数呢?
      

  3.   

    现在的估计没有。
    可以去看一下php5的源码是怎么搞的
      

  4.   

    php5中
    md5 ( $str,true);
    返回的是未经可视化处理的4字节二进制数据
    在使用时应注意到这一特征
    <?php
    $m = pack("H32",md5(1));
    echo $m."<br>";//氖B8牴#?蘌歰u剾
    echo bin2hex($m)."<br>";//c4ca4238a0b923820dcc509a6f75849b
    echo md5(1);//c4ca4238a0b923820dcc509a6f75849b
    ?>
      

  5.   

    漏了一个对比,补上<?php
    echo md5(1,true)."<br>"; //氖B8牴#?蘌歰u剾
    $m = pack("H32",md5(1));
    echo $m."<br>"; //氖B8牴#?蘌歰u剾
    echo bin2hex($m)."<br>"; //c4ca4238a0b923820dcc509a6f75849b
    echo md5(1); //c4ca4238a0b923820dcc509a6f75849b
    ?>
      

  6.   

    16位其实就是32位的9-24位
    自己用SUBSTR载一下就行啦
      

  7.   

    唠叨厉害。
    原来其实一样啊,就是表示形式的不同。
    16位二进制,转成16进制的字符串(character hexadecimal),就是32位啊