資源簡介
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???????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
評論
共有 條評論