ucenter 用户密码加密方式
uc_members(ucenter的用户表)
发现ucenter的用户的加密方法有些怪异,得到的密码不知标准的MD5的结果.
为了防止网络上md5数据库的威胁,所以进行了2次md5,而且第二次的md5还是在原始密码md5的基础上加了一段随机数.
随机数和密码都保存在数据库.
其实这样子的操作和,2次md5区别就不是很大了.对于一个32位随机数字的md5的数据库应该不大可能有解.
如果能拿到MD5结果,哪么随机数也能看到.怎么说呢,加随机数和不加随机数都是很难配检索出来的.
——
获得随机字串的代码:
<?php
function random($length, $numeric = 0) {
PHP_VERSION < '4.2.0' && mt_srand((double)microtime() * 1000000);
if($numeric) {
$hash = sprintf('%0'.$length.'d', mt_rand(0, pow(10, $length) - 1));
} else {
$hash = '';
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';
$max = strlen($chars) - 1;
for($i = 0; $i < $length; $i++) {
$hash .= $chars[mt_rand(0, $max)];
}
}
return $hash;
exit;
}
?>
得得随机字符串
加密密码:md5(md5($newpw).$salt) $salt为random返回的字符串$hash
这样就极大的提高了用户密码的安全性。
——
MD5(admin)=21232f297a57a5a743894a0e4a801fc399896a
MD5(21232f297a57a5a743894a0e4a801fc399896a,32) = 9b59c7abe6882277122de297104539a1
这样子就能数据库的数据对上了.
———
转载于:https://blog.51cto.com/dason/386987