关于serv-u支持数据库的研究在2005年就结束了,因为自己的工作重心已经转移,不再像过去一样醉心于技术研究之中。今天无意中发现省博客群中有几位同行在研究serv-u,并在修改密码方面遇到困难,于是重操旧业,翻出自己过去写的一些代码,希望对正在做类似研究的同行有所帮助。
1、如何让serv-u支持数据库?
大概从5.0开始,serv-u就开始支持odbc数据库了,具体方法不再累赘,网络上的教程多如牛毛。最简单的方法是建立一个odbc数据源,直接替换一下ServUDaemon.ini文件,内容如下。
[GLOBAL]
Version=6.4.0.5
RegistrationKey=ARrE2ta5uiCmoRKcYrRAOHIvGwcMajX/iDt8l2pM7hrA3E5ApWemoRKcnUtCOHBOeg5tC3WI/xUf+Ac=
ProcessID=588
PacketTimeOut=300
PASVPortStart=2100
PASVPortRange=50
UseUPnP=0
[Domain2]
CacheTTL=120
ODBCSource=serv|serv07|533A5051411D0B14
ODBCTables=User accounts|Group accounts|User access|Group access|User IP access|Group IP access
ODBCColumns=User|Password|SKey|HomeDir|LogMesFile|Access|Disable|NeedSecure|RelPaths|HideHidden|AlwaysLogin|ChangePass|QuotaEnable|MaxIP|MaxSpeedUp|MaxSpeedDown|MaxUsers|idleTimeOut|SessionTimeOut|RatioUp|RatioDown|RatioCredit|QuotaCurrent|QuotaMax|Expiration|Privilege|PassType|RatioType|Groups|Notes|IndexNo|Expiration_type|pwd_date
EncryptPasswords=0
EnablePassive=0
[DOMAINS]
Domain1=0.0.0.0|10.1.2.168|21|www|2|0|1
注意:ODBCSource=serv|serv07|533A5051411D0B14是我的odbc名称,请自己修改。
2、serv-u的用户密码是如何加密的?
ServU密码加密算法为随机码与MD5 32 位加密,例如:
产生两个随机字母:ab
用户输入密码:123456
生成的密码为: "ad"+MD5(ab123456)
范例函数:(md5是调用标准的md5加密算法)
function ServU(strpass) '''''''生成serv密码
Randomize
a1 = chr(Int((97 - 122 + 1) * Rnd() + 122))
a2= lcase(chr(Int((65 - 90 + 1) * Rnd() + 90)))
ServU = md5(a1& a2 & strpass)
ServU = a1& a2 & ServU
end function
其实如果安全要求不高,完全可以不采用密码加密的方式,我当年找不到这一加密算法时就这么做的。
一些资源:
1、在线申请ftp用户(ini)版;serv-u(ini).zip
2、在线申请ftp用户(数据库)版;
3、在线修改ftp用户密码(数据库)版;含access数据库、sql脚本和ini文件。ftpadmin.rar
4、serv-u密码破解(弄着玩的,用脚本写,效率极其低下)。
5、serv-u在线用户管理。(根据网络源码改的)
