WordPress用户密码算法规则

作者:我就是个世界 发表于:2010-05-20
         在把ZB4的数据转换到WordPress的时候,发现用户无法登录,密码不正确,查看数据表中的密码字符串,发现跟原先的WP的密码不同, ZB4的密码是以*开头的40位MD5密码,而WP是以$P$开头的密码没见过这种类型,仔细搜索查阅后找到如下资料:
[hr]
以下内容摘自:月光博客

  WordPress系统的用户密码是保存在wp_users数据表的user_pass字段,密码是通过Portable PHP password hashing framework类产生的,密码的形式是随机且不可逆,同一个明文的密码在不同时间,产生的密文也不一样,相对来说较为安全。[separator]

  WordPress用户密码产生的过程是,当需要生成用户密码的时候,随机产生了一个salt,然后将salt和password相加,又进行了count次md5,最后和encode64的hash数值累加,就得到了一个以$P$开头的密码,这个密码每次产生的结果都不一样,下面就是产生WordPress密码的代码,将其放在WordPress根目录下,就可以生成一个加密的password,用这个密码替换掉wp_users数据表的user_pass字段即可修改密码。

[code]
<?php
    $password = 'abc';
    global $wp_hasher;
    if ( empty($wp_hasher) ) {
        require_once( './wp-includes/class-phpass.php');
        $wp_hasher = new PasswordHash(8, TRUE);
    }
    echo $wp_hasher->HashPassword($password);
?>
[/code]

  不过,修改WordPress用户密码还有更简单的方法,就是直接将wp_users数据表的user_pass字段修改为32位的md5(passowrd)即可修改密码为password,这样的密码形式当然不是很安全,所以,当这个用户在WordPress登录后,系统会自动将MD5密码修改为以$P$开头的密码。

  WordPress的这种支持简单md5格式的密码使得其他系统(例如Ucenter系统)的用户整合WordPress更为简单。
[hr]

分享:

扫一扫在手机阅读、分享本文

请发表您的评论