目录
规则
hMailServer 在表 hm_accounts 中保存的密码。表中保存密码的字段是:accountpassword,这个密码的加密算法由字段accountpwencryption决定。这个字段的值决定了密码的不同加密算法,下面是其对应关系:
0 :原始密码;
1:使用 Blowfish 加密。
2:使用 MD5 加密;
3:使用 SHA256 加密;官方默认使用
第三种SHA256加密
先随机生成一个6位字符串,然后和你的密码组合
比如我随便写个:9432aa
然后和我的密码:123456拼接成为9432aa123456
拿9432aa123456去使用SHA256加密
把9432aa和加密得到的值拼接成为:
9432aac7f207d0015161bdd0c8263ad5b4e3c889cd51236b3ddbe00760525a48b2dbc1
然后我们拿这个值去改一下数据库系统生成账号的值
修改生效了
使用foxmail进行登录
结论
我们自己随便写的六位数,拿去SHA256加密且只在数据库中修改了accountpassword这个字段,我们依然可以登录,就说明hMailServer没有用额外的字段存储这个随机值。
登录的验证方式,我猜测就是直接取出密码字段,然后截取前六位,再进行加密,加密完后和刚刚取出的值进行对比。
所以,我们要基于这个写一个web mail的话,就可以这样做。
修改默认加密方式
前往hMailServer\Bin,即hMail安装目录下的Bin文件下,找到hMailServer.INI
把下面这个直接复制到最下面,这里的2和上面的规则一样,2是md5加密
[Settings]
PreferredHashAlgorithm=2
之后就会采取md5加密,md5函数直接调用比这SHA256简单多了。