windows xp sp3使用telnet登录到163 smtp服务器 base64编码 c#

http://hi.baidu.com/kwunkuklan/blog/item/455f121749120a044b90a75e.html这个网址看到了如何使用telnet登录到163的smtp服务器.

 

里面提到在认证账号和密码时要使用base64格式的字符。

我在visual studio 2005里使用以下代码获得base64格式字符:

 

    string   temp   =   "username";   
    byte[]   b   =   Encoding.Unicode.GetBytes(temp);   
    string   s   =   Convert.ToBase64String(b);

 

但是将获得的账号和密码发送到163的smtp服务器后,服务器返回认证失败。因为我用的是xp,而介绍里使用的是linux,所以觉得应该是编码的问题。在visual studio里使用同样的代码转化前面网址里在介绍时使用的用户名,转化的结果与介绍里的转化结果不同。数了一下位数,发现在visual studio里转化的结果的位数正好是linux里的2倍。看来有可能是使用Encoding.Unicode的原因。Unicode貌似是两个字节表示一个字符,不论这个字符是英文还是汉字。而linux貌似仍旧使用比较老的编码,还是一个字节表示一个字符。

如果这个猜想对的话,163的smtp服务器使用的编码应该与linux上的一样,也是比较老的,没有采用Unicode。

 

果然如果采用如下编码转化的话就与linux下的结果一样了。

 

    string  temp = "crazywill";
    byte[]  b = Encoding.UTF8.GetBytes(temp);
    string  s = Convert.ToBase64String(b);              //s="Y3Jhenl3aWxs"

 

我再用上面的方法获得我的账号密码的base64格式字符,认证时也获得了成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值