织梦程序作为流传最广的网站建站程序,密码规则早已经不是什么秘密,为安全而言,最好将规则改变,防止别人暴力破解。
首先,给大家介绍下织梦原本的密码规则。
会员密码规则,对密码直接进行32位MD5加密,然后存到数据库,如果被截取到加密后的字符串,通过md5反向编译可以获得这个密码。
管理员密码规则,先上源代码$pwd = substr(md5($pwd), 5, 20);对于密码进行MD5加密,然后截取5到20位字符,存到数据库。比较有规则的是将这个字符截取掉前3位和最后1位字符,然后将这个16位字符MD5反向编译,可以得出这个密码。例如将密码设置为admin,将这个密码对应的字符从数据库中取出(f297a57a5a743894a0e4),去掉前3位和最后1位(7a57a5a743894a0e),将其md5反向编译,得出的结果是admin。
所以呢,对于这个规则需要改变下,增强我们的安全性。修改前请备份文件。注:xxx修改为想要加的字符。
打开dede目录下,sys_admin_user_add.php,sys_admin_user_add.php,将sys_admin_user_add.php、$pwd = substr(md5($pwd), 5, 20)修改为$mpwd = md5($pwd."XXX");$pwd = substr(md5($pwd."XXX"), 5, 20);
打开include文件夹下userlogin.class.php,找到247行左右将$pwd = substr(md5($this->userPwd), 5, 20)修改为$pwd = substr(md5($this->userPwd."XXX"), 5, 20)。
一般为了提升网站安全,建议删除member,如果启用会员,更改密码规则可以做到更安全。
修改dede目录下member_do.php文件(管理员修改会员密码文件),将$pwdsql = empty($pwd) ? '' : ",pwd='".md5($pwd)."'"修改为$pwdsql = empty($pwd) ? '' : ",pwd='".md5($pwd.'XXX')."'";
修改dede目录下member_toadmin.php,将$pwdm = ",pwd='".md5($pwd)."'"修改为$pwdm = ",pwd='".md5($pwd.'XXX')."'",这个文件最好删除,是提升会员为管理员的,不安全。
修改include下memberlogin.class.php文件,将GetEncodePwd函数修改为:
function GetEncodePwd($pwd)
{
global $cfg_mb_pwdtype;
if(empty($cfg_mb_pwdtype)) $cfg_mb_pwdtype = '32';
switch($cfg_mb_pwdtype)
{
case 'l16':
return substr(md5($pwd.'XXX'), 0, 16);
case 'r16':
return substr(md5($pwd.'XXX'), 16, 16);
case 'm16':
return substr(md5($pwd."XXX"), 8, 16);
default:
return md5($pwd.'XXX');
}
}
修改member文件夹下reg_new.php下, $pwd = md5($userpwd)改为 $pwd = md5($userpwd."XXX");