表 hm_accounts 中保存的密码,不同的账户是可以使用不同的加密算法来加密的。表中保存密码的字段是:accountpassword,而这个密码所使用的加密算法由后面的一个字段的值来决定,这个字段就是:accountpwencryption。当前这个字段的值决定了密码的不同加密算法,下面是其对应关系:
0 -> 用明码来保存密码,即不对密码进行加密;
1 -> 使用 Blowfish 来加密密码。据介绍,这种加密算法并不安全,和用明码保存密码的安全性相差不大;
2 -> 使用 MD5 加密算法来加密密码;
3 -> 使用 SHA256 加密算法来加密密码。这也是 hMailServer 官方推荐的加密算法
盐是第6 SHA256哈希值在数据库中看到的字符。 盐是一个随机字符串。 这已经不是第6,在用户的密码字符。
1。 生成随机字符串,其中包含6个字符的字符0-9,自动对焦(十六进制字符串)。 这是盐。
2。 创建一个新字符串,温度含有盐+用户的密码。
3。 生成的SHA256哈希温度。 这是哈希。
4。 在数据库中,存储字符串盐+在密码栏哈希。
这里是用GOOGLE翻译的, 很多词语不对,不过大概意思还是能理解;
盐其实是一个随机字符串,我们就理解为每次创建密码时,生成的随机字符串;
hmailserver用户密码的加密算法是这样的:
1.假设随机字符串:8et5p9 , 假设密码是:123456;
2.将”随机字符串”和”密码”连起来:8et5p9123456;
3.将连起来的新字符串,用SHA256加密,如:hash(‘sha256′,”8et5p9123456″)
得到的密文是:2dc34747955a3546b0c71459c4be8b56a998aa32bc0f5e546872157d665d14c1
4.将”随机字符串”与”SHA256加密后的密文”连起来,
得到新密文:8et5p92dc34747955a3546b0c71459c4be8b56a998aa32bc0f5e546872157d665d14c1