王骏的BLOG
编程、网络技术点滴...
<
2007年12月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
公告
留言簿(26)
给我留言
查看公开留言
查看私人留言
随笔分类
Pocket PC (3)
(rss)
数据库 (3)
(rss)
C++,VC (11)
(rss)
.NET (14)
(rss)
烂笔头备忘录 (11)
(rss)
Web开发 (6)
(rss)
网络管理 (5)
(rss)
疑难杂症备忘 (9)
(rss)
随笔档案
2008年12月 (4)
2008年11月 (1)
2008年10月 (2)
2008年8月 (1)
2008年6月 (1)
2008年5月 (1)
2008年4月 (1)
2008年3月 (3)
2008年2月 (1)
2008年1月 (3)
2007年12月 (5)
2007年11月 (2)
2007年6月 (1)
2007年2月 (2)
2007年1月 (1)
2006年10月 (3)
2006年8月 (1)
2006年2月 (3)
2006年1月 (1)
2005年12月 (2)
2005年11月 (5)
2005年10月 (3)
2005年9月 (1)
2005年7月 (3)
2005年6月 (2)
2005年5月 (4)
2005年3月 (2)
2005年2月 (3)
2004年5月 (2)
2004年4月 (1)
文章分类
WEB开发 (2)
(rss)
网络技术 (3)
(rss)
文章档案
2006年11月 (1)
2005年11月 (1)
2005年4月 (1)
2004年10月 (1)
2004年9月 (1)
相册
程序员娱乐 (2)
WEB开发
在线CSS词典
相关链接
VC知识库博客园地
(rss)
VC知识库首页
宝宝的主页
搜索
最新评论
1. re: URL编解码(URLEncode,URLDecode)
谢谢!
--wbsong1978
2. re: 权限引起 Directory.CreateDirectory 出错
北京飞客数据恢复中心
--raid数据恢复
3. re: 权限引起 Directory.CreateDirectory 出错
服务器数据恢复
--服务器数据恢复
4. re: 权限引起 Directory.CreateDirectory 出错
磁盘阵列数据恢复
--磁盘阵列数据恢复
5. re: 权限引起 Directory.CreateDirectory 出错
--硬盘数据恢复
6. re: ASP.NET大文件上传
为什么
buff = _request.GetPreloadedEntityBody();为NULL啊?
--路过
7. re: URL编解码(URLEncode,URLDecode)
多谢多谢!!!!
--KEN
8. re: IE无法打印一例
早上遇到有人的IE7(vista sp1)无法打印,他的临时文件在D盘,打印时说找不到文件。
解决办法:找到D盘上的临时文件夹,赋上对应的权限即可.
heron.96 AT Gm ail dot com
--VISTA
9. 中国美甲技术
[url=
http://www.coolestgirl.com.cn
]美甲[/url] 美甲
--零花钱
10. re: string与线程安全
--http://www.axdat.com
阅读排行榜
1. .Text 使用经验:dotText的编译(11901)
2. ASP.NET大文件上传(10459)
3. 利用Visual Assist X的模板功能提高编辑效率(7526)
4. IE无法打印一例(6252)
5. [烂笔头备忘录] 删除list元素(4276)
6. string与线程安全(4185)
7. Sasser(震荡波)蠕虫病毒肆虐(4162)
8. [HTTP 500 - 内部主机错误]的处理(4016)
9. 双SCSI硬盘安装小结(3569)
10. 将VC知识库.Text Blog 从.95升级到.96(3203)
评论排行榜
1. ASP.NET大文件上传(57)
2. Sasser(震荡波)蠕虫病毒肆虐(48)
3. string与线程安全(21)
4. IE无法打印一例(17)
5. .Text 使用经验:dotText的编译(16)
6. .NET中的3DES加密 (13)
7. 传奇游戏服务器源码学习(13)
8. 将VC知识库.Text Blog 从.95升级到.96(11)
9. XMLHTTP与客户端无刷新更新数据(11)
10. [烂笔头备忘录] 删除list元素(10)
VC知识库BLOG
首页
新随笔
联系
聚合
登录
随笔-65 文章-5 评论-252 Trackbacks-0
BASE64编码与解码(Base64Encode,Base64Decode)
#include
"
stdafx.h
"
#include
<
string
>
using namespace std;
#ifdef _WIN32
#pragma warning(disable:
4514
)
#endif
class Base64
{
public:
static inline bool is_base64(unsigned
char
c) {
return
(isalnum(c)
||
(c
==
'
+
')
||
(c
==
'
/
'));};
static std::string base64_encode(unsigned
char
const
*
, unsigned
int
len);
static std::string base64_decode(std::string const
&
s);
};
static const std::string base64_chars
=
"
ABCDEFGHIJKLMNOPQRSTUVWXYZ
"
"
abcdefghijklmnopqrstuvwxyz
"
"
0123456789+/
"
;
std::string Base64::base64_encode(unsigned
char
const
*
bytes_to_encode, unsigned
int
in_len) {
std::string ret;
int
i
=
0
;
int
j
=
0
;
unsigned
char
char_array_3[
3
];
unsigned
char
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::base64_decode(std::string const
&
encoded_string) {
int
in_len
=
encoded_string.size();
int
i
=
0
;
int
j
=
0
;
int
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]);
char_array_3[
0
]
=
(char_array_4[
0
]
<<
2
)
+
((char_array_4[
1
]
&
0x30
)
>>
4
);
char_array_3[
1
]
=
((char_array_4[
1
]
&
0xf
)
<<
4
)
+
((char_array_4[
2
]
&
0x3c
)
>>
2
);
char_array_3[
2
]
=
((char_array_4[
2
]
&
0x3
)
<<
6
)
+
char_array_4[
3
];
for
(i
=
0
; (i
<
3
); i
++
)
ret
+=
char_array_3[i];
i
=
0
;
}
}
if
(i) {
for
(j
=
i; j
<
4
; j
++
)
char_array_4[j]
=
0
;
for
(j
=
0
; j
<
4
; j
++
)
char_array_4[j]
=
base64_chars.find(char_array_4[j]);
char_array_3[
0
]
=
(char_array_4[
0
]
<<
2
)
+
((char_array_4[
1
]
&
0x30
)
>>
4
);
char_array_3[
1
]
=
((char_array_4[
1
]
&
0xf
)
<<
4
)
+
((char_array_4[
2
]
&
0x3c
)
>>
2
);
char_array_3[
2
]
=
((char_array_4[
2
]
&
0x3
)
<<
6
)
+
char_array_4[
3
];
for
(j
=
0
; (j
<
i
-
1
); j
++
) ret
+=
char_array_3[j];
}
return
ret;
}
int
main(
int
argc,
char
*
argv[])
{
string str
=
"
VC知识库 vckbase.com
"
;
string str1
=
Base64::base64_encode((const unsigned
char
*
)str.c_str(), str.length());
//
BASE64编码
string str2
=
Base64::base64_decode(str1);
//
BASE64解码
printf(
"
%s
"
, str1.c_str());
printf(
"
%s
"
, str2.c_str());
return
0
;
}
posted on 2007-12-18 17:07 王骏的BLOG 阅读(681)
评论(4)
编辑
收藏
Comments
#
re: BASE64编码与解码(Base64Encode,Base64Decode)
bvcb
Posted @ 2008-01-18 11:21
[URL=
http://www.zyydjx.com/about.htm
]制袋机[/URL] [URL=
http://www.hu-song.cn/eKultur.htm
">
http://www.hu-song.cn/eKultur.htm
]die cutting machine[/URL] [URL=
http://www.hu-song.cn/eKultur.htm
">
http://www.hu-song.cn/eKultur.htm
]auto slitting machine[/URL] [URL=
http://www.hu-song.cn/eabout.htm
]flexo printing machine[/URL] [URL=
http://www.cnxinye.com
]bag-making machine[/URL] [url=
http://www.cnxinda.cn
]制袋机[/url] [url=
http://www.cnxinda.cn
/lianx.htm]吹膜机[/url] [url=
http://www.chuangsj.com/myshow.asp
]GOOGLE排名[/url] [url=
http://www.zjbeiyin.com
]压痕机[/url][url=
http://www.gxysjx.com
">
http://www.gxysjx.com
]印刷机[/url] [url=
http://www.gxysjx.com
">
http://www.gxysjx.com
]吹膜机[/url] [url=
http://www.65137889.com
">
http://www.65137889.com
]印刷机械[/url] [url=
http://www.65137889.com
">
http://www.65137889.com
]凹版印刷机[/url] [url=
http://www.dong-hai.net
]印刷机[/url]
#
re: BASE64编码与解码(Base64Encode,Base64Decode)
bvcb
Posted @ 2008-01-18 11:21
[url=
http://www.lgxinfeng.com
">
http://www.lgxinfeng.com
">
http://www.lgxinfeng.com
">
http://www.lgxinfeng.com
]丝印机[/url] [url=
http://www.lgxinfeng.com
">
http://www.lgxinfeng.com
">
http://www.lgxinfeng.com
">
http://www.lgxinfeng.com
]丝网印刷机[/url] [url=
http://www.lgxinfeng.com
">
http://www.lgxinfeng.com
">
http://www.lgxinfeng.com
">
http://www.lgxinfeng.com
]全动丝印机[/url] [url=
http://www.lgxinfeng.com
">
http://www.lgxinfeng.com
">
http://www.lgxinfeng.com
">
http://www.lgxinfeng.com
/101.asp]网印机[/url] [url=
http://www.lgxinfeng.com
">
http://www.lgxinfeng.com
">
http://www.lgxinfeng.com
">
http://www.lgxinfeng.com
/101.asp]晒版机[/url] [url=
http://www.lgxinfeng.com
">
http://www.lgxinfeng.com
">
http://www.lgxinfeng.com
">
http://www.lgxinfeng.com
/101.asp]拉网机[/url] [url=
http://www.lgxinfeng.com
">
http://www.lgxinfeng.com
">
http://www.lgxinfeng.com
">
http://www.lgxinfeng.com
/202.asp]UV光固机[/url] [url=
http://www.lgxinfeng.com
">
http://www.lgxinfeng.com
">
http://www.lgxinfeng.com
">
http://www.lgxinfeng.com
/202.asp]光固机[/url] [url=
http://www.lgxinfeng.com
">
http://www.lgxinfeng.com
">
http://www.lgxinfeng.com
">
http://www.lgxinfeng.com
/202.asp]胶印光固机[/url] [URL=
http://www.zyydjx.com
">
http://www.zyydjx.com
]吹膜机[/URL] [URL=
http://www.zyydjx.com
">
http://www.zyydjx.com
]制袋机[/URL]
#
re: BASE64编码与解码(Base64Encode,Base64Decode)
bvcb
Posted @ 2008-01-18 11:22
<a href="
http://www.lgxinfeng.com">丝印机</a>
<a href="
http://www.lgxinfeng.com">丝网印刷机</a>
<a href="
http://www.lgxinfeng.com">全动丝印机</a>
<a href="
http://www.lgxinfeng.com/101.asp">网印机</a>
<a href="
http://www.lgxinfeng.com/101.asp">晒版机</a>
<a href="
http://www.lgxinfeng.com/101.asp">拉网机</a>
<a href="
http://www.lgxinfeng.com/202.asp">UV光固机</a>
<a href="
http://www.lgxinfeng.com/202.asp">光固机</a>
<a href="
http://www.lgxinfeng.com/202.asp">胶印光固机</a>
<a href="
http://www.zyydjx.com">吹膜机</a>
<a href="
http://www.zyydjx.com">制袋机</a>
<a href="
http://www.zyydjx.com/about.htm">制袋机</a><a
href="
http://www.hu-song.cn/eabout.htm">label
printing machine</a>
#
re: BASE64编码与解码(Base64Encode,Base64Decode)
bvcb
Posted @ 2008-01-18 11:22
<a href="
http://www.hu-song.cn/eabout.htm">flexo
printing machine</a> <a href="
http://www.hu-song.cn/eKultur.htm">auto
slitting machine</a> <a href="
http://www.cnxinye.com">bag-making
machine</a> <a href="
http://www.hu-song.cn/eKultur.htm">die
cutting machine</a> <a href="
http://www.cnxinda.cn">制袋机</a>
<a href="
http://www.cnxinda.cn/lianx.htm">吹膜机</a><a
href="
http://www.chuangsj.com/myshow.asp">GOOGLE排名</a>
<a href="
http://www.zjbeiyin.com">压痕机</a>
<a href="
http://www.gxysjx.com">印刷机</a>
<a href="
http://www.gxysjx.com">吹膜机</a>
<a href="
http://www.65137889.com">印刷机械</a>
<a href="
http://www.65137889.com">凹版印刷机</a>
<a href="
http://www.dong-hai.net">印刷机</a>
标题
姓名
主页
验证码
*
内容
Remember Me?
登录
使用高级评论
Top
[使用Ctrl+Enter键可以直接提交]