echo md5("abc", true);//返回16位,不过这是在PHP5里才有。
解决方案 »
- PHP中用define定义的常量是否全局有效?
- zend studio 中使用zend debugger的奇怪问题
- Call to undefined method
- 修改一个PHP文件权限
- 谁知道这个问题帮我解决一下
- 在线求问,急,急,急!
- [PHP新手]说说下面写法的优劣
- 高分求解 ***论坛的安全性设计需要什么***100分求安全
- 在oracle存储过程查询出多条记录,然后在前端程序分别显示出记录来?
- 急!我设计的一个网站有重大漏洞.
- 关于flush的困惑
- 各位老师,我先在要实现中文文档下载即:http://10.28.30.17/总结.doc 但apache不支持,如何用php处理一下,实现功能,谢谢
字符串 “abc” md5 后结果是 “abcdefghijklmn.......789”
字符串 “efg” md5 后结果是 abcdefghijklmn.......780”
“...”部分内容相同
那么他们两个截取16位后结果相同
如果是密码的话
到最后用密码abc登陆,和密码efg登陆,都可以进入系统
不是不大安全吗?
php只提供32位的md5摘要(注意md5不是加密)
在php5中md5函数的第二个参数为true时,返回的是4字节的二进制值,表示成十六进制就是32位的
如果你想得到php5中md5("abc", true)这样的返回值,那么可以:
function bin_md5($val) {
return pack("H32",md5($val));
}截取是不行的,截取将丢失很多信息。
32位的md5都不能保证唯一,何况被截断了呢
我用的是php4
没有php5里面的功能
我用的是php4,里面有自带函数吗?我看了很多函数,似乎找不到,
哪里有此类的加密函数下载啊
function bin_md5($val) {
return pack("H32",md5($val));
}
$str = "abc";
echo $str . "<br>";//原字符串
echo bin_md5($str) . "<br>";//加密
print_r(unpack("H32", bin_md5($str)));//解密
?>用版主的正好适合楼主的要求。
支持!!!