zoukankan
html css js c++ java
Base64编码解码
/*
收藏的Base64编码/解码。
在一个外国网站看到的,不过对中文不支持。
自己加入了escape,unescape,对中文也支持了。
先用escape()对中文进行编码,然后再进行base64编码。
解码时,再加入unescape()对中文进行解码。
*/
<
html
>
<
head
>
<
title
>
base64 Encoding/Decoding
</
title
>
</
head
>
<
script
type
="text/javascript"
>
<!--
var
keyStr
=
"
ABCDEFGHIJKLMNOP
"
+
"
QRSTUVWXYZabcdef
"
+
"
ghijklmnopqrstuv
"
+
"
wxyz0123456789+/
"
+
"
=
"
;
function
encode64(input)
{
input
=
escape(input);
var
output
=
""
;
var
chr1, chr2, chr3
=
""
;
var
enc1, enc2, enc3, enc4
=
""
;
var
i
=
0
;
do
{
chr1
=
input.charCodeAt(i
++
);
chr2
=
input.charCodeAt(i
++
);
chr3
=
input.charCodeAt(i
++
);
enc1
=
chr1
>>
2
;
enc2
=
((chr1
&
3
)
<<
4
)
|
(chr2
>>
4
);
enc3
=
((chr2
&
15
)
<<
2
)
|
(chr3
>>
6
);
enc4
=
chr3
&
63
;
if
(isNaN(chr2))
{
enc3
=
enc4
=
64
;
}
else
if
(isNaN(chr3))
{
enc4
=
64
;
}
output
=
output
+
keyStr.charAt(enc1)
+
keyStr.charAt(enc2)
+
keyStr.charAt(enc3)
+
keyStr.charAt(enc4);
chr1
=
chr2
=
chr3
=
""
;
enc1
=
enc2
=
enc3
=
enc4
=
""
;
}
while
(i
<
input.length);
return
output;
}
function
decode64(input)
{
var
output
=
""
;
var
chr1, chr2, chr3
=
""
;
var
enc1, enc2, enc3, enc4
=
""
;
var
i
=
0
;
//
remove all characters that are not A-Z, a-z, 0-9, +, /, or =
var
base64test
=
/
[
^
A
-
Za
-
z0
-
9
\
+
\
/
\
=
]
/
g;
if
(base64test.exec(input))
{
alert(
"
There were invalid base64 characters in the input text.\n
"
+
"
Valid base64 characters are A-Z, a-z, 0-9, '+', '/', and '='\n
"
+
"
Expect errors in decoding.
"
);
}
input
=
input.replace(
/
[
^
A
-
Za
-
z0
-
9
\
+
\
/
\
=
]
/
g,
""
);
do
{
enc1
=
keyStr.indexOf(input.charAt(i
++
));
enc2
=
keyStr.indexOf(input.charAt(i
++
));
enc3
=
keyStr.indexOf(input.charAt(i
++
));
enc4
=
keyStr.indexOf(input.charAt(i
++
));
chr1
=
(enc1
<<
2
)
|
(enc2
>>
4
);
chr2
=
((enc2
&
15
)
<<
4
)
|
(enc3
>>
2
);
chr3
=
((enc3
&
3
)
<<
6
)
|
enc4;
output
=
output
+
String.fromCharCode(chr1);
if
(enc3
!=
64
)
{
output
=
output
+
String.fromCharCode(chr2);
}
if
(enc4
!=
64
)
{
output
=
output
+
String.fromCharCode(chr3);
}
chr1
=
chr2
=
chr3
=
""
;
enc1
=
enc2
=
enc3
=
enc4
=
""
;
}
while
(i
<
input.length);
return
unescape(output);
}
//
--></script>
<
body
>
<
form name
=
"
base64Form
"
>
Type
in
the message you want to encode
in
base64, or paste
<
br
>
base64 encoded text into the text field, select Encode or Decode,
<
br
>
and click the button
!<
br
>
<
textarea name
=
"
theText
"
cols
=
"
40
"
rows
=
"
6
"
></
textarea
><
br
>
<
input type
=
"
button
"
name
=
"
encode
"
value
=
"
Encode to base64
"
onClick
=
"
document.base64Form.theText.value=encode64(document.base64Form.theText.value);
"
>
<
input type
=
"
button
"
name
=
"
decode
"
value
=
"
Decode from base64
"
onClick
=
"
document.base64Form.theText.value=decode64(document.base64Form.theText.value);
"
>
</
form
>
</
body
>
</
html
>
引用自:
http://www2.cnblogs.com/vibration/articles/7392.html
查看全文
相关阅读:
gsoap、c++。webservice的client。
2.5给定两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表首部。编写函数对这两个整数求和,并用链表形式返回结果。进阶:假设这些数位是正向存放的。
c++、webServices、gsoap、tinyxml、iconv
2.4编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或者等于x的结点之前。
CMD窗口快捷键
IE7下position:relative与overflow的问题
关于ASP.NET下,JQuery+AJAX使用JSON返回对象集合List数据的总结
找不到可安装的 ISAM(必解决)
jquery mini ui
Unity3D
原文地址:https://www.cnblogs.com/xiaodi/p/140409.html
最新文章
InstallShield高级应用测试SQL Server是否可连接
ios消息推送机制及问题总结
SQL用于获取一个月中员工消费的最后一条消费记录
愚弄神经网络
C# 动态编译并调用执行。
Python OpenCV 之图像形态学(膨胀与腐蚀)
pip 安装依赖 设置加速目录 Conda 设置加速安装
我的第一个博客
图神经网络
XP环境下发布MVC3网站
热门文章
jquery 控制模板菜单样式
MEF实现IOC(依赖倒置)
MVC 访问权限控制
Visual Studio 2015 对象管理器图标解释(转自msdn)
前方。。。前方?前方!
2.3实现一个算法,删除单项链表中间的某个结点,假定你只能访问该结点。
2.6给定一个有环链表,实现一个算法返回环路的开头结点。
vs生成dll,却没有生成相应的lib
VS提示“the project file '*.vcxproj' has been removed” 解决方案。
OpenHarmony、RK3568、烧镜像导致无法进入loadre、救机器
Copyright © 2011-2022 走看看