首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >courier authdaemon奇怪的密码处理

courier authdaemon奇怪的密码处理
EN

Stack Overflow用户
提问于 2013-01-03 05:46:12
回答 1查看 514关注 0票数 1

好的,我的快递安装有一个非常奇怪的问题..当我尝试登录时,我需要用户名和密码,对吗?除了我可以使用任何字符串作为密码,它的前缀与我的密码相同。示例:

假设这是我的密码:

代码语言:javascript
复制
#password#

我可以使用以下任一密码成功登录:

代码语言:javascript
复制
#password#
#password#FOO
#password#BAR

等等。

我使用mysql存储用户数据,这是我的/etc/courier/authmysqlrc

代码语言:javascript
复制
MYSQL_SERVER localhost
MYSQL_USERNAME #USER
MYSQL_PASSWORD #PASSWORD
MYSQL_PORT 0
MYSQL_DATABASE mail
MYSQL_USER_TABLE users
MYSQL_CRYPT_PWFIELD password
#MYSQL_CLEAR_PWFIELD password
MYSQL_UID_FIELD 5000
MYSQL_GID_FIELD 5000
MYSQL_LOGIN_FIELD email
MYSQL_HOME_FIELD "/home/vmail"
MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/')
#MYSQL_NAME_FIELD
MYSQL_QUOTA_FIELD quota

哪里会有问题呢?提前感谢您的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-19 05:37:58

问题是密码是使用操作系统的crypt()函数加密的,该函数只查看密码的前8个字符来生成加密的散列。

正如here所解释的那样

如果您的密码长度超过8个字符,则只要前8个字符匹配,crypt()就会将其称为有效匹配。例如,如果您的密码是“password”,并且以加密哈希的形式存储在htpasswd文件中,那么对“passwordX”的检查将与对“password”、“password123”等的检查完全相同;也就是说,由于前8个字符完全匹配,因此它将作为有效的检查返回。类似地,如果您的密码是“only password”,并且您只检查了“longpass”,那么它也将作为有效返回。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14129699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档