Perl Forum User -> MT User, 密码问题原来很简单

| 0 Comments | 2 TrackBacks | WebBlog Articles

This is a SiteLog of Easun's WebBlog。

装了自带 Community Pack 1.6 的 Movable Type 4.21 Pro,也用 Community Pack 功能建立了测试的 MT Forum,初衷是想用这个MT Forum 取代 基于 LB5000 ES Lite 建立的本站半废弃状态的 Perl Forum
简单的作了测试,帖子的转移很简单,用Perl写个小玩意,导出成 MT 系统能认识的文本就足够了。而User的转移貌似出现的密码问题上了。
当初匆匆检测功能,没有细思量,总之, Perl Forum 采用的 MD5 加密密码,而 MT User 的密码则是采用随机数和原始密码用 Unix crypt function 来加密的。貌似转化起来很是有点问题。
好久没有看原代码了,今天晚上有点时间,看了看 MT 关于 Auth 的代码。发现其实很简单,在用户输入的时候多一重判断就是

思路有了,代码也就很Easy了:)
临时用 hint 字段存储 md5 后的 Perl Forum 密码,设特定的MT User 密码字段为 (esb),然后检测md5($pass),判断,转化就是。
简单的修改如下:
找到 ${MTDIR}lib/MT/Auth/MT.pm,定位函数 sub is_valid_password


return $crypted ? $real_pass eq $pass :
crypt($pass, $real_pass) eq $real_pass;

上方加设以下代码:

if ($real_pass eq '(esb)') { my $esb_hint = $author->column('hint'); ($esb_hint,my $real_hint) = split(/\#esb\#/,$esb_hint); require Digest::MD5; my $md5_pass = Digest::MD5::md5_hex($pass); if ($md5_pass eq $esb_hint){ $author->set_password($pass); $author->hint($real_hint); # $author->column('hint', $real_hint); $author->save or die $author->errstr; return 1; } return 0; }

完成后测试一切OK,现在缺少的就是等一个比较用空的时候,彻底迁移 Perl Forum :D

引用通告|TrackBacks (2)

本日志的TrackBack URL: http://easun.org/cgi-bin/mtos/tb_mt_41.pl/232.

以下罗列的是网络上引用了本日志 [Perl Forum User -> MT User, 密码问题原来很简单] 的 Blog 连接。

真有点搞不明白 6A 了,不知道搞什么鬼,若干个版本。Movable Type, Movable Type Pro,Movable Type Open Source,这几个版本貌似都免费提供,当然还有传说中的 Movable Type Commercial 。 升级到4.21时,我选择的是 6A 提供给 ProNet Members 专用的版本。这个版本不是所谓的 Movable Type Pro ,而只是比 Movable Type 多带了一个 Professional Pack 1.2, 从而支... [阅读更多...]

在 Test Forum 测试了几天,解决了用户和帖子转移问题,今天,正式把 Perl Forum 迁移 到了 MT 4.21 pro 平台,也算整个 Site 统一进了数据库时代:) MT Forum 说起来实际上并不是完整的 Forum ,和真正的 Forum 对比起来,貌似少了很多功能,但是全静态化对小规模,小用户群的准 Forum 还是很有吸引力的。究竟它有完整的 注册用户发/回帖功能,满足自己的需求了:) 所有的原 Perl Forum (Base on LB_ES Lite) 用户全部转... [阅读更多...]

发表该文评论|Leave a comment

最近发表|Recent Entries

[MT Tips]如何让某个日志在Blog首页固顶?

貌似最简单的办法就是修改日期到一个很遥远的日期,比如 AnySQL 那样:) 但是带来的问题的很多,比如导致Feed阅读器犯糊涂或者影响搜索引擎的收录等等,更糟糕的是对于 日志来说,最主要的就是发布日期。也许大家都已经发现了,我的主页模仿 MT Forum 搞了一个固顶日志(也是为了风格统一)出来,这个固顶日志是后台通过自己设置实现的。是怎么设置的。答案是利用 <mt:Entries> 的tags 功能。 具体概念代码如下:<mt:Entries tag="@top" sort_by="authored_on" sort_order="descend" limit="1" blog_ids="1,5"> dosthing.....</mt:Entries> 这样我们只要要在固定的主题 加上…

北京 Perl Workshop 2008 网站开张 - 接受大会注册,演讲报名

网站开张了, 地址是 http://conference.perlchina.org/bjpw2008/ 由 PerlChina 和 Postgresql China 合办,2008 年 11 月 8 号举行的 Beijing Perl Workshop 是一个免费的 Perl 交流会,向所有对…

好玩的 MT Forum 的按作者归档

Perl Forum 用 MT4 的 MT Forum 的功能搭建起来了好几天了,一直没有发现什么意外,今天突然发现 按作者按月归档 貌似找完了整个发布完的 Perl Forum 也没有找到 link ,查看作者个人信息貌似也没有 link ? 真是好玩的 归档方式。从后台看,给每个用户(作者)都建立了按月的归档页面,估计是为了便于各用户归档自己的文章吧? 后台抓图如下:…