ucenter 用户密码加密方式

xxx_common_member(论坛用户表)这个表中的密码是在用户注册的时候,$password = md5(random(10))生成的,而且这个随机数没有被保存下来。修改之后还是能登陆的。密码按照xxx_ucenter_members中的为准。
  xxx_ucenter_members(ucenter的用户表)
 ucenter的用户的加密方法如下:
  加密密码:md5(md5($password).$salt) $salt为random函数返回的字符串$hash
  $salt即是xxx_ucenter_members中的字段salt的值
  random函数的代码如下:
  <?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;
  }

  ?>

看了下uc源码:model/user.php

function add_user($username, $password, $email, $uid = 0, $questionid = '', $answer = '') {
$salt = substr(uniqid(rand()), -6);
$password = md5(md5($password).$salt);
$sqladd = $uid ? "uid='".intval($uid)."'," : '';
$sqladd .= $questionid > 0 ? " secques='".$this->quescrypt($questionid, $answer)."'," : " secques='',";
$this->db->query("INSERT INTO ".UC_DBTABLEPRE."members SET $sqladd username='$username', password='$password', email='$email', regip='".$this->base->onlineip."', regdate='".$this->base->time."', salt='$salt'");
$uid = $this->db->insert_id();
$this->db->query("INSERT INTO ".UC_DBTABLEPRE."memberfields SET uid='$uid'");
return $uid;
}

转载于:https://my.oschina.net/mickelfeng/blog/86323

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值