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

这样子就能数据库的数据对上了.

———