wordpress用户密码加密方式改为MD5

写在前面

  • wordpress的用户密码加密方式挺复杂,不容易被破解的,那为什么要改为MD5加密呢。
  • 有些系统需要同步网站的用户信息,当然也包括密码,但是那边是MD5加密的,而且也不太可能去改成wordpress的加密方式,网上找了很多方法,都说不行,而且强制破解又根本行不通,于是就找了wordpress的源代码加密方式,进行了修改。下面放代码:
//找到 网站根目录/wp-includes/class-phpass.php    修改这个文件的最后两个函数。

    //原本加密方式:
    function HashPassword($password)
    {
        if ( strlen( $password ) > 4096 ) {
            return '*';
        }

        $random = '';

        if (CRYPT_BLOWFISH == 1 && !$this->portable_hashes) {
            $random = $this->get_random_bytes(16);
            $hash =
                crypt($password, $this->gensalt_blowfish($random));
            if (strlen($hash) == 60)
                return $hash;
        }

        if (CRYPT_EXT_DES == 1 && !$this->portable_hashes) {
            if (strlen($random) < 3)
                $random = $this->get_random_bytes(3);
            $hash =
                crypt($password, $this->gensalt_extended($random));
            if (strlen($hash) == 20)
                return $hash;
        }

        if (strlen($random) < 6)
            $random = $this->get_random_bytes(6);
        $hash =
            $this->crypt_private($password,
            $this->gensalt_private($random));
        if (strlen($hash) == 34)
            return $hash;

        # Returning '*' on error is safe here, but would _not_ be safe
        # in a crypt(3)-like function used _both_ for generating new
        # hashes and for validating passwords against existing hashes.
        return '*';
    }
    function CheckPassword($password, $stored_hash)
    {
        if ( strlen( $password ) > 4096 ) {
            return false;
        }

        $hash = $this->crypt_private($password, $stored_hash);
        if ($hash[0] == '*')
            $hash = crypt($password, $stored_hash);

        return $hash === $stored_hash;
    }

    //修改后加密方式
    function HashPassword($password)
    {
        $hash = md5($password);
        return $hash;
    }

    function CheckPassword($password, $stored_hash)
    {

        $hash = md5($password);
        if($stored_hash == $hash)
            return $hash === $stored_hash;
    }
把最后两个函数改为上诉的验证方式即可。

该方法并不适用于对安全性有高要求的站长,而是适用于想同步数据,换成我们熟悉的MD5加密方式,对安全性要求也不是很高的站长(PS:虽然用的很少,还有点鸡肋,但是网上确实没有什么好的方法,记录着,万一哪天需要用到呢)。

admin

秋风荡的个人博客

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐

隐藏
变装