`
月影无痕
  • 浏览: 1008609 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

extmail的md5crypt加密方式的原理(PHP实现)

 
阅读更多

公司最近使用了extmail+postfix作为邮件解决方案。现有一OA系统,员工登录OA时,须使用其合法账号登录之,但这样一来,至少需要两个独立账号和密码,对工作效率有一定的影响。


于是我们决定改造现有的OA系统登录机制,使其与extmail使用一致的账号及密码信息,这样的好处是,员工只要记好邮箱密码,也就可以用它登录OA系统,可显著提高工作效率。


经过了解,extmail使用mysql保存邮件账号信息,mailbox表的password即保存了加密后的密码信息,但extmail支持多种加密方式,具体可查看文件 /var/www/extsuite/extman/webman.cf的SYS_CRYPT_TYPE项的设置。


我的系统使用md5crypt加密方式,密码格式如:$1$k0Q4EA49$XXXXXXXXXXXXXXX。

mailbox表中已经没有记录原始密码,那么如何验证用户输入密码的正确与否?


经过我反复查阅PHP手册的crypt函数的用法,发现crypt支持多种不同的散列加密方式,具体请详细阅读PHP手册中crypt函数的具体用法。


md5crypt存在一个salt(盐),特点是加密后的密文中记录了这段salt, 即$符号及其包含的字符,上述的加密结果中的salt是$1$k0Q4EA49$, 所以,对原始密码为123456, salt为$1$k0Q4EA49$加密算法的PHP实现如下:


<?php

echo crypt('123456',  '$1$k0Q4EA49$' );


输出$1$k0Q4EA49$WcjktPPYOSyhI77n8BPPr.


知道这个原理之后,我们即可将extmail的mailbox账号信息验证集成到我们任何系统之中。


另外,linux的/etc/shadow, grub的md5-crypt的加密方式与上述原理完全一样,如果要将某账号的密码强行修改为123456而不借助其它工具,可将/etc/shadow文件中对应账号第二个字段设置为$1$k0Q4EA49$WcjktPPYOSyhI77n8BPPr.


分享到:
评论

相关推荐

    EXTMAIL资源整合包

    7. **ssl**:用于设置安全套接层(SSL)的证书和密钥文件,以实现加密通信。 8. **data**:可能存储EXTMAIL运行时产生的数据,如邮件数据库、日志文件等。 安装EXTMAIL时,用户需要遵循README中的步骤,可能涉及...

    extmail1.2 extman1.1

    5. **配置extmail**:根据extmail提供的文档或在线资源,配置必要的设置,如数据库连接、域名、管理员账号等。 6. **启动服务**:运行extmail的启动脚本或者服务管理命令,使其开始监听网络端口并接受连接。 7. **...

    Extmail数据接口,支持推送用户数据、发送、读取邮件

    Extmail是一款开源的企业级电子邮件系统,它提供了丰富的数据接口,使得开发者可以轻松地与之集成,实现用户数据的推送、邮件的发送以及邮件的读取等功能。本文将深入探讨Extmail数据接口的工作原理、主要功能及其在...

    Extmail使用权威手册

    在安全方面,Extmail支持SSL/TLS加密,保证了邮件传输的安全性。同时,其内置的反垃圾邮件和防病毒机制,能够有效地保护邮件系统免受恶意攻击。管理员还可以通过Extman配置防火墙规则,进一步增强系统的安全性。 总...

    extmail 1.1

    ExtMail - A high performance webmail system =========================================== It was written in pure perl, only support Maildir++(or Maildir), we try to optimize the design and archtecture,...

    postfix+dovecot+extmail配置文件

    3. **Extmail 配置**:配置 Extmail 以连接到 Postfix 和 Dovecot,设置相应的 SMTP 和 IMAP 服务器地址,以及认证方式。 4. **安全与加密**:确保所有通信使用 SSL/TLS 加密,并正确配置证书。 5. **反垃圾邮件和...

    extmail-1.0.5.tar.gz

    4. **安全特性**:作为电子邮件系统,ExtMail应具备SSL/TLS加密,以确保用户数据在传输过程中的安全性。 5. **邮件过滤和管理**:包括垃圾邮件过滤、自动转发、规则设置、邮件分类等功能,帮助用户高效管理邮件。 ...

    CentOS7下安装ExtMail.doc

    - **安装saslauthd**:配置saslauthd以支持Cyrus SASL的多种认证方法,如CRAM-MD5、DIGEST-MD5等。但此步骤可能未成功,需要进一步排查。 9. **Courier-Authlib配置** - **安装 Courier-Authlib**:这是用于邮件...

    extmail服务器部署

    extmail服务器部署是一种邮件系统解决方案,包括邮件基本模块、邮件传输代理、数据库、邮件接收、Web帐户管理后台、SMTP认证库、日志分析及显示、Web服务器、Php支持、防病毒软件、SMTP阶段反垃圾邮件工具、内容过滤...

    Extmail_Centos+5.5搭建设置篇

    总结来说,本文详细介绍了如何在CentOS 5.5上搭建Extmail邮件系统,包括各个组件的功能、系统工作原理以及必要的配置步骤。这对于需要建立企业级邮件服务的IT专业人员来说,是一个非常实用的指南。通过遵循本文的...

    CentOS5.3安装postfix+extmail邮件系统

    本文将详细解析如何在CentOS 5.3操作系统上安装配置Postfix与Extmail邮件系统,以实现高效、安全的企业邮件服务。 ### 一、理解Postfix与Extmail **Postfix**是一款由IBM开发的邮件传输代理(MTA),它设计用于...

    extmail-1.2_and_extman-1.1.zip

    标题中的"extmail-1.2_and_extman-1.1.zip"是一个压缩包文件,它包含了两个软件组件——extmail-1.2和extman-1.1。这两个组件在IT领域中可能是用于电子邮件管理和扩展功能的工具。 首先,让我们来详细了解"extmail...

    利用postfix+extmail 搭建web邮件系统(PDF)

    ### 利用Postfix+ExtMail搭建Web邮件系统的关键知识点 #### 一、Postfix与ExtMail概述 - **Postfix**: 是一款广泛使用的邮件传输代理(MTA),它以其高效性和安全性著称。Postfix的设计目标是提供一个简单且易于管理...

    extmail优化版本

    通过深入理解EXTMAIL的核心代码,开发者可以更好地理解邮箱系统的运作机制,从而进行更深层次的定制,实现诸如邮件过滤、自动回复、邮件分类等高级功能。这对于提升企业内部通信效率,打造安全、便捷的办公环境具有...

    extmail-1.2 和 extman-1.1

    标题中的"extmail-1.2"和"extman-1.1"分别指的是两个不同的软件工具,它们可能用于电子邮件管理和扩展功能。在IT行业中,这样的命名通常意味着这是开源软件或者应用程序的版本号。让我们详细了解一下这两个工具及其...

    ExtMail-Solution-Linux-0.2.tar.gz

    ExtMail-Solution-Linux-0.2.tar.gz 是一个针对Linux平台的邮件服务器解决方案的压缩包文件。这个文件名中的 "ExtMail" 指的是一个开源的邮件服务器软件,而 "Solution" 暗示这可能是一个包含了配置、安装和管理所需...

    Cent5的 Postfix+Extmail

    ### 基于CentOS 5的Postfix+Extmail 安装与配置指南 #### 概述 本文档旨在详细介绍如何在CentOS 5操作系统上安装和配置Postfix与Extmail来搭建邮件服务器。Postfix是一款开源的MTA(邮件传输代理),以其高效稳定...

Global site tag (gtag.js) - Google Analytics