Authentication 为什么在smtp中需要base64

Authentication 为什么在smtp中需要base64,authentication,smtp,base64,Authentication,Smtp,Base64,使用SMTP-AUTH时,为什么需要在base64中对登录名和密码进行编码。下面是我的SMTP对话示例 220 ALAN.CP.com Microsoft ESMTP MAIL Service ehlo 250 ALAN.CP.com Hello [10.10.1.1] more... verbs 250 OK auth login 334 VXNlcm5hbWU6 <base64 encoded password> 334 UGFzc3dvcmQ6 <base

使用SMTP-AUTH时,为什么需要在base64中对登录名和密码进行编码。下面是我的SMTP对话示例

220 ALAN.CP.com Microsoft ESMTP MAIL Service 
ehlo 
250 ALAN.CP.com Hello [10.10.1.1] more... 
verbs 
250 OK 
auth login 
334 VXNlcm5hbWU6 
<base64 encoded password>
334 UGFzc3dvcmQ6 
<base64 encoded password>
235 2.7.0 Authentication successful. 
220 ALAN.CP.com Microsoft ESMTP邮件服务
埃洛
250 ALAN.CP.com你好[10.10.1.1]更多。。。
动词
250行
身份验证登录
334 VXNlcm5hbWU6
334 UGFzc3dvcmQ6
235 2.7.0身份验证成功。

基本SMTP根本不需要身份验证。SMTP-AUTH在中定义,但未定义您在此处使用的特定类型的AUTH“AUTH login”。它确实说

服务器实现必须实现不允许任何明文密码机制的配置

我找不到“AUTH LOGIN”的规范,尽管谷歌搜索表明它很可能是微软exchange独有的功能。进一步的谷歌搜索表明您的示例是直接从中复制的


如果你问为什么这个特定的例子是base64编码的,那是因为微软对RFC禁止明文有一个愚蠢的解释。如果您想知道其他SMTP身份验证机制为何使用base64,这通常是因为它们发送的数据实际上是某种类型的二进制数据(例如共享机密的MD5哈希和服务器提供的令牌)。如果这不能回答您的问题,请编辑您的问题以包含更多详细信息。

您无意中在公共论坛上发布了用户名和密码。我已将您的评论标记为删除。啊,nm,我看到这实际上不是您的身份验证信息,而是来自某个随机网站。>服务器实现必须实现不允许任何明文密码机制的配置,非常感谢!