您的位置:首页 > 其它

Base64编码解码

2016-09-18 14:06 309 查看
知乎用户说:

1.标准base64只有64个字符(英文大小写、数字和+、/)以及用作后缀等号;

2.base64是把3个字节变成4个可打印字符,所以base64编码后的字符串一定能被4整除(不算用作后缀的等号);

3.等号一定用作后缀,且数目一定是0个、1个或2个。这是因为如果原文长度不能被3整除,base64要在后面添加\0凑齐3n位。为了正确还原,添加了几个\0就加上几个等号。显然添加等号的数目只能是0、1或2;

4.严格来说base64不能算是一种加密,只能说是编码转换。使用base64的初衷。是为了方便把含有不可见字符串的信息用可见字符串表示出来,以便复制粘贴;

具体怎么加密解密的可以见http://www.cnblogs.com/qq78292959/archive/2013/05/14/3077837.html

Base64源码如下:(需要下载sun.misc.BASE64Decoder.jar 这个包)

package java_project11;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import Decoder.BASE64Decoder;
import Decoder.BASE64Encoder;

public class Base64 {

public static String base64Encode(String str) {
byte[] b = null;
String s = null;
try {
b = str.getBytes("utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (b != null) {
s = new BASE64Encoder().encode(b);
}
return s;
}

public static String base64Decode(String str) {
byte[] b = null;
String s = null;
try {
b = new BASE64Decoder().decodeBuffer(str);
s = new String(b, "utf-8");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return s;
}
}


控制台输出:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  base64 base64编解码