网络营销/网络推广/SEO/互联网资讯

提供专业网络营销资讯和服务

用户操作
[即时聊天] [发私信] [加为好友]
李文雄ID:horisly
26444次访问,排名4504好友0人,关注者1
horisly的文章
原创 50 篇
翻译 1 篇
转载 8 篇
评论 5 篇
horisly的公告
Welcome To My Blog... 希望这里有你需要的…… 也希望留下你希望的……
最近评论
wait2008:方法是不错,不过还有一种方法,文章没有说:“就是在这个文章的后面留言”


《.COM Framework》自动化、插件、应用程序设计框架,多个软件产品协同、组合式工作,完美实现软件与软件框架分离,支持windows标准多文档应用程序框架和单文档应用程序框架。可以代替MFC框架.</br……
mygod:Alcatell经过base64编码后是QWxjYXRlbGw=
而不是123456的编码
加=号是base64编码完成的,不是你手动去加,之前的编码就已经错了.
作者你这么一篇漏洞百出的文章也敢贴出来?
fager:好东西,我喜欢,继续支持!
Horisly:My answer was written by C++. And the solution of the problem was mainly a class of Friend.
However,the use of the std::map probably is not right since it was the first time that I use the map ……
zhtjack:好文章我收!
文章分类
收藏
相册
My Photos
SEO搜索引擎优化
AdSenser网络营销顾问(RSS)
中华价值网
网络营销相关网站
新竞争力(RSS)
网络营销指南
我的其他blog
Horisly-网络营销顾问(RSS)
大雄之漂流瓶(RSS)
股票入门(RSS)
股票行情(RSS)
存档
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes

原创 【引用】ESMTP协议如何进行身份验证收藏

新一篇: 【引用】ESMTP身份验证机制探索手记 | 旧一篇: 【原创】利用WM_COPYDATA实现进程间通信

 ESMTP协议如何进行身份验证
http://dev.csdn.net/develop/article/33/33456.shtm

ESMTP采取了为了防止垃圾邮件的泛滥,采用了身份验证机制。但是在实际的使用过程中,我有时发现我输入的验证密码是正确的,但是系统提示却是错误的,这是什么原因呢?

下面分析ESMTP 的身份验证机制:

(连接到smtp.elong.com:25)
220 sp1 ESMTP v2.1
EHLO ABCDEFG
250-smtp.elong.com
250-PIPELINING
250-SIZE 20480000
250-ETRN
250-AUTH LOGIN PLAIN DIGEST-MD5 CRAM-MD5  (支持的身份验证机制种类: LOGIN, PLAIN等)
250 8BITMIME
AUTH LOGIN
334 VXNlcm5hbWU6                      (Base64解码后: Username:)
bGlwaW5n                             (Base64编码前:的用户名 Alcatell)
334 UGFzc3dvcmQ6                      (Base64解码后: Password:)
QWxjYXRlbGw                          (Base64编码前的密码: 123456)
235 Authentication successful

在程序执行时,用户名是:Alcatell, 密码是:123456,但是按照上面的步骤输入程序执行时却总是显示密码错误,什么原因呢?后来,我用Outlook Express 跟踪邮件发送日志,发现,原来密码验证时必须加一个重要的格式符号。

QWxjYXRlbGw                          (Base64编码前的密码: 123456)

就是这一句,必须改为:QWxjYXRlbGw= ,也就是说,必须加一个等号进来,否则密码验证不通过,即使你的密码是:123456,那么必须在123456对应的base64编码的后面加一个等号,否则,系统认为你的密码是错误的。

 

密码验证的代码如下:

 // 验证用户名
 sAuth = "bGlwaW5n\r\n";   // User: Alcatell
 m_wsSMTPServer.Send( (LPCTSTR)sAuth, sAuth.GetLength() );
 if( !get_response(USERNAME_SUCCESS,false) )
 {
  AfxMessageBox("USERNAME FAILURE");
  m_wsSMTPServer.Close();
  return FALSE;

 }
 
 // 验证密码       // Password:123456
 sAuth = "QWxjYXRlbGw=\r\n";
 m_wsSMTPServer.Send( (LPCTSTR)sAuth, sAuth.GetLength() );
 
 if( !get_response(LOGIN_SUCCESS,false) )
 {
  AfxMessageBox("Login failure");
  m_wsSMTPServer.Close();
  return FALSE; 

}

ESMTP采取了为了防止垃圾邮件的泛滥,采用了身份验证机制。但是在实际的使用过程中,我有时发现我输入的验证密码是正确的,但是系统提示却是错误的,这是什么原因呢?

下面分析ESMTP 的身份验证机制:

(连接到smtp.elong.com:25)
220 sp1 ESMTP v2.1
EHLO ABCDEFG
250-smtp.elong.com
250-PIPELINING
250-SIZE 20480000
250-ETRN
250-AUTH LOGIN PLAIN DIGEST-MD5 CRAM-MD5  (支持的身份验证机制种类: LOGIN, PLAIN等)
250 8BITMIME
AUTH LOGIN
334 VXNlcm5hbWU6                      (Base64解码后: Username:)
bGlwaW5n                             (Base64编码前:的用户名 Alcatell)
334 UGFzc3dvcmQ6                      (Base64解码后: Password:)
QWxjYXRlbGw                          (Base64编码前的密码: 123456)
235 Authentication successful

在程序执行时,用户名是:Alcatell, 密码是:123456,但是按照上面的步骤输入程序执行时却总是显示密码错误,什么原因呢?后来,我用Outlook Express 跟踪邮件发送日志,发现,原来密码验证时必须加一个重要的格式符号。

QWxjYXRlbGw                          (Base64编码前的密码: 123456)

就是这一句,必须改为:QWxjYXRlbGw= ,也就是说,必须加一个等号进来,否则密码验证不通过,即使你的密码是:123456,那么必须在123456对应的base64编码的后面加一个等号,否则,系统认为你的密码是错误的。

 

密码验证的代码如下:

 // 验证用户名
 sAuth = "bGlwaW5n\r\n";   // User: Alcatell
 m_wsSMTPServer.Send( (LPCTSTR)sAuth, sAuth.GetLength() );
 if( !get_response(USERNAME_SUCCESS,false) )
 {
  AfxMessageBox("USERNAME FAILURE");
  m_wsSMTPServer.Close();
  return FALSE;

 }
 
 // 验证密码       // Password:123456
 sAuth = "QWxjYXRlbGw=\r\n";
 m_wsSMTPServer.Send( (LPCTSTR)sAuth, sAuth.GetLength() );
 
 if( !get_response(LOGIN_SUCCESS,false) )
 {
  AfxMessageBox("Login failure");
  m_wsSMTPServer.Close();
  return FALSE; 

}

发表于 @ 2005年07月22日 20:00:00|评论(loading...)|编辑

新一篇: 【引用】ESMTP身份验证机制探索手记 | 旧一篇: 【原创】利用WM_COPYDATA实现进程间通信

评论

#mygod 发表于2006-04-10 00:22:00  IP: 222.212.192.*
Alcatell经过base64编码后是QWxjYXRlbGw=
而不是123456的编码
加=号是base64编码完成的,不是你手动去加,之前的编码就已经错了.
作者你这么一篇漏洞百出的文章也敢贴出来?
发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © horisly