echo md5("abc", true);//返回16位,不过这是在PHP5里才有。
解决方案 »
- 求一个简单代码ASP,php都行
- 求一分页思路(大容量文本分页)
- 求助:IIS下建虚拟目录后不能运行PHP程序!
- 怎么找到PHP的index.html界面
- 参加CNNIC调查中万元大奖
- Fatal error: Call to a member function query() on a non-object in G:\wamp\apache
- 同样问一个关于class的有趣现象~~
- 我用php连接的iis 今天出现问题是什么原因 郁闷呀?
- passing by reference与 passing by value的区别
- 求助大牛
- 关于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)));//解密
?>用版主的正好适合楼主的要求。
支持!!!