开源邮件服务器 hMailServer 简介及其用户密码加密算法[转]
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
这两天公司给了我一个任务,让我给公司和一个客户安装一个邮件服务器,需求是:
这次我找到了一个比较不错的邮件服务器:hMailServer,当前发布的服务器版本是 5.3.3。这个邮件服务器是开源的邮件服务器,用 c 开发的,数据库支持 ms sql server、MySql、PostgreSQL,提供 SMTP/POP/IMAP 等服务,没有域名、用户数的限制,且支持杀毒软件、反垃圾邮件等功能。这完全符合了我们的要求。具体的安装办法可以参考官方网站的介绍,也可以到这个页面看看:用hMailServer架设自己的高性能免费邮件服务器 当然,这个服务器也有些遗憾:
这些缺憾前两个很容易解决:
对于第三个缺憾,如果你用 php 服务器的话,那恭喜你,你可以直接使用这个服务器安装目录下的:PHPWebAdmin 目录来管理。但我用的是 java,且对 php 早已忘得一干二净,但又不想安装 php,所以只好自己想办法解决。 经过两天的研究,我打算自己写一个页面来管理。之所以决定要自己写程序来管理,是因为我发现,其实邮件用户账号等各项配置数据都保存在数据库中,处理起来非常简单。唯一麻烦的就是用户密码的加密算法。 下面先简单说一下这个服务器的一些主要的数据库表:
这三个表就是我们自己写管理邮件账户页面时,最常用到的表。其它的表,也很简单,如果需要的话,看一下,很容易看懂。 这两天我遇到的最大麻烦就是,用户的密码加密算法。我看了数据库的保存密码的字段,但不知道是用什么加密算法加密的。到网上找了一圈,都没有找到直接的答案。但看了一些人的讨论后,再自己测试了一下,最终发现,在表 hm_accounts 中保存的密码,不同的账户是可以使用不同的加密算法来加密的。表中保存密码的字段是:accountpassword,而这个密码所使用的加密算法由后面的一个字段的值来决定,这个字段就是:accountpwencryption。当前这个字段的值决定了密码的不同加密算法,下面是其对应关系: 0 -> 用明码来保存密码,即不对密码进行加密; 1 -> 使用 Blowfish 来加密密码。据介绍,这种加密算法并不安全,和用明码保存密码的安全性相差不大; 2 -> 使用 MD5 加密算法来加密密码; 3 -> 使用 SHA256 加密算法来加密密码。这也是 hMailServer 官方推荐的加密算法 知道上述内容后,自己写管理用户的界面就非常简单了,要添加一个用户账号,直接往数据库添加一条记录即可。 当前默认的 hMailServer 的加密算法是(参考:http://cpdns.com/2010/11/hmailserver-users-password-encryption-algorithm/):
文章有点啰嗦,但希望能对想使用这个服务器,并想自己写程序来管理邮件账号的朋友有点帮助。 该文章在 2011/2/11 10:35:40 编辑过 |
关键字查询
相关文章
正在查询... |