Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索

[疑问] 自已动手从lybbs转过来,请教关于uc_memebers表中的密码如何转?

[复制链接]
oldbig 发表于 2008-10-20 21:10:34 | 显示全部楼层 |阅读模式
本帖最后由 oldbig 于 2008-10-25 16:23 编辑

搜了一下,有提到lybbs,但都没有什么现成的转换程序,没办法,自己啃一啃吧。

首先是用户,我理解,要在有uc的情况下,在discuz里插入一个用户,要插入四个表:
cdb_memebers,cdb_memeberfields,uc_memebers,uc_memberfields

其余都好说,就是密码问题:lybbs里密码加密是16位md5,按官方的说法,是使用官方提供的相应的登录文件替换。
但有一个问题,就是在uc_memebers里,多了一个salt字段,查出,在uc_memebers表中,密码应该如此插入:

$password=$row['password'];//这里的密码是从lybbs数据库中取出的16位md5密码
$salt = substr(uniqid(rand()), -6);

//那么,在用salt进行加密后,在uc_memebers中的密码倒底应该是16位还是32位?
//也就是说,应该用下面的哪一条语句来产生新密码?

//$password = substr(md5($password.$salt),8,16);
//$password = md5($password.$salt);

因为这里的$password已经是md5过的了,所以是不是可以直接和$salt拼接,然后再md5呢?

我两句都试过了,登录都不成功!还要请教高人指点!这种情况该怎么办?
回复

使用道具 举报

 楼主| oldbig 发表于 2008-10-20 21:46:16 | 显示全部楼层
补充一句,我发现在uc_members 表中,password字段是这样来的:
即如一个用户的密码是“goodluck”,则在uc_memebers中password字段的值就是:
md5(md5('goodluck').$salt)

但在cdb_memebers中的password和这个又不一样,谁能告诉我这个password是怎么来的?
回复

使用道具 举报

ejew 发表于 2008-10-21 06:38:46 | 显示全部楼层
论坛中的密码是 md5('goodluck')

UC中的密码是 md5(md5('goodluck').$salt)
其中$salt可以理解为随机码,存储在UC的字段中

你不明白可以转到6.0再升级6.1
回复

使用道具 举报

penrcz 发表于 2008-10-21 14:52:09 | 显示全部楼层
楼主转成功也教一下我..

我只要贴子和用户资料就行了...非常感谢
回复

使用道具 举报

 楼主| oldbig 发表于 2008-10-21 20:16:56 | 显示全部楼层
论坛中的密码是 md5('goodluck')

UC中的密码是 md5(md5('goodluck').$salt)
其中$salt可以理解为随机码,存储在UC的字段中

你不明白可以转到6.0再升级6.1
ejew 发表于 2008-10-21 06:38

哥们,不对啊,论坛里的密码肯定不是md5('goodluck'),我试过的,而且我注册几个用户,密码都是goodluck,但查看数据库里,密码字段都不一样!
哪位知道的,给说说?谢了!!
回复

使用道具 举报

 楼主| oldbig 发表于 2008-10-21 21:51:33 | 显示全部楼层
新发现:论坛的密码确实不起作用,所以在做数据插入时这个字段可以随便填!(有待进一步确定)

那么现在问题就集中在UC的密码上了,我原来论坛用户的密码是经过md5加密的,这时再插入,需要如何处理?
回复

使用道具 举报

白乐天 发表于 2008-10-21 22:43:03 | 显示全部楼层
哥们,不对啊,论坛里的密码肯定不是md5('goodluck'),我试过的,而且我注册几个用户,密码都是goodluck,但查看数据库里,密码字段都不一样!
哪位知道的,给说说?谢了!!
oldbig 发表于 2008-10-21 20:16

藤椅的朋友已经告诉你答案了,你还没看明白。看来你对php语法不熟。
.  是连接字符串。

比如goodluck的md5值是 abcdef(实际应该为32位,这里就不写那么多了)    ,salt是注册是随机产生的6位字符串,比如为 123456

那么uc里的真密码就是abcdef123456这个串的md5值。
回复

使用道具 举报

beijing200808 发表于 2008-10-22 09:05:41 | 显示全部楼层
同意楼上o(∩_∩)o...
回复

使用道具 举报

 楼主| oldbig 发表于 2008-10-22 13:07:23 | 显示全部楼层
藤椅的朋友已经告诉你答案了,你还没看明白。看来你对php语法不熟。
.  是连接字符串。

比如goodluck的md5值是 abcdef(实际应该为32位,这里就不写那么多了)    ,salt是注册是随机产生的6位字符串,比如为 1 ...
白乐天 发表于 2008-10-21 22:43


谢谢,我知道是这样。但问题是,我的论坛的md5密码是16位的,这样的话再用
md5(16位md5码.$salt)就不对了吧
回复

使用道具 举报

beijing200808 发表于 2008-10-22 13:44:45 | 显示全部楼层
转换程序自己写的吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-9-16 08:35 , Processed in 0.122396 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表