Base64的Java实现

一 算法实现
1、JDK
2、Commonc Codec
3、Bouncy Castle
 
二 代码
package com.imooc.security.base64;
import java.io.IOException;
import org.apache.commons.codec.binary.Base64;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
 
public class ImoocBase64 {
 
private static String src = "cakin24 security base64";
 
public static void main(String[] args) {
jdkBase64();
commonsCodesBase64();
bouncyCastleBase64();
}
 
public static void jdkBase64() {
try {
BASE64Encoder encoder = new BASE64Encoder();
String encode = encoder.encode(src.getBytes());
System.out.println("encode : " + encode);
 
BASE64Decoder decoder = new BASE64Decoder();
System.out.println("decode : " + new String(decoder.decodeBuffer(encode)));
} catch (IOException e) {
e.printStackTrace();
}
}
 
public static void commonsCodesBase64() {
byte[] encodeBytes = Base64.encodeBase64(src.getBytes());
System.out.println("encode : " + new String(encodeBytes));
 
byte[] decodeBytes = Base64.decodeBase64(encodeBytes);
System.out.println("decode : " + new String(decodeBytes));
}
 
public static void bouncyCastleBase64() {
byte[] encodeBytes = org.bouncycastle.util.encoders.Base64.encode(src.getBytes());
System.out.println("encode : " + new String(encodeBytes));
 
byte[] decodeBytes = org.bouncycastle.util.encoders.Base64.decode(encodeBytes);
System.out.println("decode : " + new String(decodeBytes));
}
}
 
三 运行效果
encode : Y2FraW4yNCBzZWN1cml0eSBiYXNlNjQ=
decode : cakin24 security base64
encode : Y2FraW4yNCBzZWN1cml0eSBiYXNlNjQ=
decode : cakin24 security base64
encode : Y2FraW4yNCBzZWN1cml0eSBiYXNlNjQ=
decode : cakin24 security base64
 
四 应用场景
email、秘钥、证书文件
 
五 产生原因
邮件的历史问题
 
六 其他
基于64个字符的编码算法,定义于RFC 2045

猜你喜欢

转载自cakin24.iteye.com/blog/2396242