BASE64加解密
-
JDK 自带
-
Commons Codec 地址:http://commons.apache.org/proper/commons-codec/download_codec.cgi
-
Bouncy Castle 地址:https://www.bouncycastle.org/latest_releases.html
相应的maven依赖
<dependency>
<groupId>commons-codec</groupId>
<artifacctId>commons-codec</artifactId>
<version>1.15</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.68</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.0.7</version>
</dependency>
代码实现
import cn.hutool.core.codec.Base64;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import java.io.IOException;
public class Base64Demo {
private String data = "base64";
public void jdkBase64() throws IOException {
BASE64Encoder base64Encoder = new BASE64Encoder();
String encode = base64Encoder.encode(data.getBytes());
System.out.printf("JDKBase64 base64Encoder : %s \r\n", encode);
BASE64Decoder base64Decoder = new BASE64Decoder();
byte[] bytes = base64Decoder.decodeBuffer(encode);
System.out.printf("JDKBase64 base64Encoder : %s \r\n", new String(bytes));
}
/**
* 对jdk做了封装
*/
public void hutoolBase64() {
String encode = Base64.encode(data.getBytes());
byte[] decode = Base64.decode(encode.getBytes());
System.out.printf("hutoolBase64 base64Encoder : %s \r\n", encode);
System.out.printf("hutoolBase64 base64Encoder : %s \r\n", new String(decode));
}
public void codecBase64() {
byte[] encodeBase64 = org.apache.commons.codec.binary.Base64.encodeBase64(data.getBytes());
byte[] decodeBase64 = org.apache.commons.codec.binary.Base64.decodeBase64(encodeBase64);
System.out.printf("codecBase64 base64Encoder : %s \r\n", new String(encodeBase64));
System.out.printf("codecBase64 base64Encoder : %s \r\n", new String(decodeBase64));
}
public void bouncycastleBase64() {
byte[] encode = org.bouncycastle.util.encoders.Base64.encode(data.getBytes());
byte[] decode = org.bouncycastle.util.encoders.Base64.decode(encode);
System.out.printf("bouncycastleBase64 base64Encoder : %s \r\n", new String(encode));
System.out.printf("bouncycastleBase64 base64Encoder : %s \r\n", new String(decode));
}
}
输出结果:
JDKBase64 base64Encoder : YmFzZTY0
JDKBase64 base64Encoder : base64
hutoolBase64 base64Encoder : YmFzZTY0
hutoolBase64 base64Encoder : base64
codecBase64 base64Encoder : YmFzZTY0
codecBase64 base64Encoder : base64
bouncycastleBase64 base64Encoder : YmFzZTY0
bouncycastleBase64 base64Encoder : base64