资源简介
c++ smpt发送邮件类 ssl/tls
比较好用 转自codeproject
代码片段和文件信息
/*
base64.cpp and base64.h
Copyright (C) 2004-2008 Ren?Nyffenegger
This source code is provided ‘as-is‘ without any express or implied
warranty. In no event will the author be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose
including commercial applications and to alter it and redistribute it
freely subject to the following restrictions:
1. The origin of this source code must not be misrepresented; you must not
claim that you wrote the original source code. If you use this source code
in a product an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such and must not be
misrepresented as being the original source code.
3. This notice may not be removed or altered from any source distribution.
Ren?Nyffenegger rene.nyffenegger@adp-gmbh.ch
*/
#include “base64.h“
#include
static const std::string base64_chars =
“ABCDEFGHIJKLMNOPQRSTUVWXYZ“
“abcdefghijklmnopqrstuvwxyz“
“0123456789+/“;
static inline bool is_base64(unsigned char c)
{
return (isalnum(c) || (c == ‘+‘) || (c == ‘/‘));
}
std::string base64_encode(unsigned char const* bytes_to_encode unsigned int in_len)
{
std::string ret;
int i = 0 j = 0;
unsigned char char_array_3[3] char_array_4[4];
while (in_len--)
{
char_array_3[i++] = *(bytes_to_encode++);
if (i == 3)
{
char_array_4[0] = (char_array_3[0] & 0xfc) >> 2;
char_array_4[1] = ((char_array_3[0] & 0x03) << 4) + ((char_array_3[1] & 0xf0) >> 4);
char_array_4[2] = ((char_array_3[1] & 0x0f) << 2) + ((char_array_3[2] & 0xc0) >> 6);
char_array_4[3] = char_array_3[2] & 0x3f;
for(i = 0; (i <4) ; i++)
ret += base64_chars[char_array_4[i]];
i = 0;
}
}
if (i)
{
for(j = i; j < 3; j++)
char_array_3[j] = ‘\0‘;
char_array_4[0] = (char_array_3[0] & 0xfc) >> 2;
char_array_4[1] = ((char_array_3[0] & 0x03) << 4) + ((char_array_3[1] & 0xf0) >> 4);
char_array_4[2] = ((char_array_3[1] & 0x0f) << 2) + ((char_array_3[2] & 0xc0) >> 6);
char_array_4[3] = char_array_3[2] & 0x3f;
for (j = 0; (j < i + 1); j++)
ret += base64_chars[char_array_4[j]];
while((i++ < 3))
ret += ‘=‘;
}
return ret;
}
std::string base64_decode(std::string const& encoded_string)
{
int in_len = encoded_string.size();
int i = 0 j = 0 in_ = 0;
unsigned char char_array_4[4] char_array_3[3];
std::string ret;
while (in_len-- && ( encoded_string[in_] != ‘=‘) && is_base64(encoded_string[in_]))
{
char_array_4[i++] = encoded_string[in_]; in_++;
if (i ==4) {
for (i = 0; i <4; i++)
char_array_4[i] = base64_chars.find(char_array_4[i]);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9195 2011-06-23 07:42 CSmtp_v2_1_ssl\Article Source.htm
文件 3844 2008-08-18 13:23 CSmtp_v2_1_ssl\ba
文件 190 2008-07-18 19:30 CSmtp_v2_1_ssl\ba
文件 72094 2012-11-06 06:20 CSmtp_v2_1_ssl\CSmtp.cpp
文件 7142 2012-11-03 22:27 CSmtp_v2_1_ssl\CSmtp.h
文件 874 2010-08-09 12:32 CSmtp_v2_1_ssl\CSmtp.sln
文件 6477 2010-08-20 19:26 CSmtp_v2_1_ssl\CSmtp.vcproj
文件 1652 2012-11-03 22:20 CSmtp_v2_1_ssl\main.cpp
文件 13660 2012-11-03 20:00 CSmtp_v2_1_ssl\md5.cpp
文件 4441 2010-08-14 20:57 CSmtp_v2_1_ssl\md5.h
文件 5682 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\aes.h
文件 48773 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\asn1.h
文件 18956 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\asn1_mac.h
文件 28073 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\asn1t.h
文件 30822 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\bio.h
文件 5173 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\blowfish.h
文件 33562 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\bn.h
文件 4565 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\buffer.h
文件 4453 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\cast.h
文件 1978 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\comp.h
文件 9484 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\conf.h
文件 4080 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\conf_api.h
文件 24217 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\crypto.h
文件 10736 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\des.h
文件 18238 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\des_old.h
文件 8654 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\dh.h
文件 11674 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\dsa.h
文件 16252 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\dso.h
文件 6323 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\dtls1.h
文件 9632 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\e_os2.h
文件 540 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\ebcdic.h
............此处省略50个文件信息
- 上一篇:集合覆盖问题包括程序、文档
- 下一篇:圆弧算法MFC
相关资源
- C++代码查看工具
- 五邑大学面向对象C++之MFC实验 学生成
- 八数码问题C++图形界面
- VC++实现ShePp_Logan模型设计
- MFC简易图形编辑软件
- VS2010 C++开发初学者开发源码
- c++ 字符串表达式求值
- c++QT5新版画任意阶贝塞尔曲线完整工
- Microsoft Visual C++ Runtime 64 bits
- 密码编码学:加密方法的C与C++实现
- Effective STL 中文版非扫描版
- c++实现魂斗罗游戏
- Visual c++ 2010 express 中文版
- 是男人就下一百层C++游戏源码
- MSVC编译器
- 航空管理系统源代码c++
- 清华郑莉C++讲稿
- VC++调用大漠插件按键精灵的方法及演
- c++ 并发编程实战 中文版+英文版
- C++ 多线程通信方式简介并结合生产者
- MFC/C++画柱状图及饼状图
- 书店租赁系统C++带SQL数据库
- NLopt-非线性规划的C/C++代码
- VC++多文档程序可新建文本编辑器和画
- easyx做的时钟
- MFC写的八皇后演示程序
- 用于人脸识别的lbp算法C++源码
- mfc工资管理系统.rar
- C++程序设计谭浩强100%完整高清版·清
- C++面向对象程序设计谭浩强 完整版
评论
共有 条评论