zoukankan      html  css  js  c++  java
  • http://blog.csdn.net/spidertiger/archive/2006/09/11/1206512.aspx

    Mediawiki 的用户密码是用 MD5加密算法加密的。但它并不直接采用它对用户的 password 进行加密,而是对所需加密的内容加以处理的。经过以下的步骤处理之后,密码数据就可以直接入库,所以有必要时我们可以对 mediawiki用户批量入库。


    由终端进入 ${MEDIAWIKI_HOME}/includes/ 目录,用下列命令查看一下:

    $ grep 'md5' *

    结果系统列出了很多内容包含有“md5”的文件,如:

    ...
    array( 'html' => $parsed, 'hash' => md5( $notice ) ), 600 );
    GlobalFunctions.php: $p = md5( $password);
    GlobalFunctions.php: return md5( "{$userid}-{$p}" );
    HistoryBlob.php: $hash = md5( $text );
    ...

    可以看到,GlobalFunctions.php 文件中有一条对登录密码的加密代码 $p = md5($password);。打开它,查找这条语句在文件中的位置,发现原来它是这样加密的:

    function wfEncryptPassword( $userid, $password ) {
    global $wgPasswordSalt;
    $p = md5( $password);
    if($wgPasswordSalt)
    return md5( "{$userid}-{$p}" );
    else
    return $p;
    }

    也就是说,系统获取用户在数据库中的 ID 号,将这个 ID 号与加过密的登录密码用“-”号连接,再将这个连接后的字符串作一次加密,将这个加密的结果存入数据库。用这种方法可以避免两个完全相同的密码在数据库中存储也完全相同。


    下面简化一下它的步骤:

    $var = md5($upwd);
    $pwd = md5("{$id}-{$var}");
    return $pwd;
  • 相关阅读:
    最佳买卖股票时期含冷冻期
    牛客网刷题笔记
    交换字符中的元素
    刷题总结
    牛客基础网刷题笔记
    买卖股票的最佳时机 II
    Solution -「51nod 1355」斐波那契的最小公倍数
    Solution -「51nod 1584」加权约数和
    Solution -「CF 1375G」Tree Modification
    Solution -「洛谷 P5787」「模板」二分图(线段树分治)
  • 原文地址:https://www.cnblogs.com/danghuijian/p/4400473.html
Copyright © 2011-2022 走看看