开源邮件服务器 hMailServer 用户密码加密算法
|
admin
2017年10月23日 23:8
本文热度 7369
|
开源邮件服务器 hMailServer 在表 hm_accounts 中保存的密码,不同的账户是可以使用不同的加密算法来加密的。表中保存密码的字段是:accountpassword,而这个密码所使用的加密算法由后面的一个字段的值来决定,这个字段就是:accountpwencryption。当前这个字段的值决定了密码的不同加密算法,下面是其对应关系:
0 -> 用明码来保存密码,即不对密码进行加密;
1 -> 使用 Blowfish 来加密密码。据介绍,这种加密算法并不安全,和用明码保存密码的安全性相差不大;
2 -> 使用 MD5 加密算法来加密密码;
3 -> 使用 SHA256 加密算法来加密密码。这也是 hMailServer 官方推荐的加密算法
知道上述内容后,自己写管理用户的界面就非常简单了,要添加一个用户账号,直接往数据库添加一条记录即可。
当前默认的 hMailServer 的加密算法是(参考:http://cpdns.com/2010/11/hmailserver-users-password-encryption-algorithm/):
- 随机生成一个6位长的字符串,假设生成的随机字符串是:8et5p9,假设密码是:123456;
- 将“随机字符串”和“密码”连起来:8et5p9123456;
-
将连起来的新字符串,用SHA256加密,如:hash("sha256","8et5p9123456"),得到的密文是:2dc34747955a3546b0c71459c4be8b56a998aa32bc0f5e546872157d665d14c1
-
将“随机字符串”与“SHA256加密后的密文”连起来,得到新密文:8et5p92dc34747955a3546b0c71459c4be8b56a998aa32bc0f5e546872157d665d14c1,这就是保存在数据库表中的密码字段里的值。
文章有点啰嗦,但希望能对想使用这个服务器,并想自己写程序来管理邮件账号的朋友有点帮助。
该文章在 2017/10/23 23:08:56 编辑过
| |
全部评论1 |
|
admin
2017年10月23日 23:15
hmailserver针对新建到域里的账户有4种加密方式,分别为: - 0 - None. Store passwords in clear text. This is not recommended.
- 1 - Blowfish. Store passwords encrypted using Blowfish. This is not recommended, since the password used for encryption is known. Hence, this is no more safe than option 0.
- 2 - MD5. Store passwords in MD5 hash. This is only recommended to preserve backwards compatibility if you have application which integrates with the hMailServer database.
- 3 - SHA256 - Store passwords in SHA256 hashes. This is currently the recommended option which gives the highest level of security.
而第三种,是官方默认和推荐的。 由于某些原因,需要改变用户密码的加密算法,则需要新加以下参数(红色)到hmailserver.ini中更改完毕重启服务即可
[Database] Type=MYSQL Username=root Password=bf28e0745411a083 PasswordEncryption=1 Port=3306 Server=127.0.0.1 Database=hmail Internal=0 [Settings] PreferredHashAlgorithm=2 该评论在 2017/10/23 23:15:36 编辑过
|