基于BCB开发具有身份认证功能的邮件发送程序
AnsiString m_64code; //储存Base64编码的字符串
char* m_s; //临时存储参数字符串
//Base64字符表
char m_64[]=
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
m_len = s.Length(); //取得字符串长度
m_s = s.c_str();
m_64code=""; //返回串置空
//处理3的倍数以内的字符
for(i=0;i<m_len-m_len%3;i+=3){
m_tmp=m_s/4;
m_64code+=m_64[m_tmp];
m_tmp=m_s%4*16 + m_s[i+1]/16;
m_64code+=m_64[m_tmp];
m_tmp=m_s[i+1]%16*4 + m_s[i+2]/64;
m_64code+=m_64[m_tmp];
m_tmp=m_s[i+2]%64;
m_64code+=m_64[m_tmp];
}
//如果字符串的长度被3除余2 ,不足的位数补0,尾部补“=
if(m_len%3==2){
m_tmp=m_s[m_len-2]/4;
m_64code+=m_64[m_tmp];
m_tmp=m_s[m_len-2]%4*16+m_s[m_len-1]/16;
m_64code+=m_64[m_tmp];
m_tmp=m_s[m_len-1]%16*4;
m_64code+=m_64[m_tmp];
m_64code+='=';
}
//如果字符串的长度被3除余1 ,不足的位数补0,尾部补两个“=”
if(m_len%3==1){
m_tmp=m_s[m_len-1]/4;
m_64code+=m_64[m_tmp];
m_tmp=m_s[m_len-1]%4*16;
m_64code+=m_64[m_tmp];
m_64code+="==";
}
return m_64code;
}
6 结束语
本程序在Windows 2000环境下使用Borland C++ Builder 6.0编写及调试的,分别使用网易和新浪邮箱做实验,都可以顺利完成身份认证以及邮件发送功能。
参考文献
[1]. 王宏、傅新苗、冉欣,《C++ Builder 程序设计教程》,清华大学出版社,2000年3月第一版
[2]. http://www.faqs.org/rfcs/rfc2554.html
[3]. Borland C++ Builder 联机帮助系统
Tags:
作者:佚名评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论