Java JDK 1.7版本提供了对字符串进行 BASE64 编码和解码的方法,它们是 java.util.Base64
和 javax.xml.bind.DatatypeConverter
。
使用java.util.Base64类进行BASE64编码和解码
java.util.Base64
是 JDK 1.8 新增的类,它提供了两个静态方法 getEncoder()
和 getDecoder()
用来获取编码器和解码器。
import java.util.Base64;
public class Base64Util {
/**
* 对字符串进行BASE64编码
*
* @param str 原始字符串
* @return 编码后的结果
*/
public static String encode(String str) {
byte[] bytes = str.getBytes();
byte[] encoded = Base64.getEncoder().encode(bytes);
return new String(encoded);
}
/**
* 对BASE64编码的字符串进行解码
*
* @param encoded 编码后的字符串
* @return 解码后的结果
*/
public static String decode(String encoded) {
byte[] decoded = Base64.getDecoder().decode(encoded);
return new String(decoded);
}
}
下面是一个编码和解码的示例:
public class Base64Demo {
public static void main(String[] args) {
String str = "Hello World!";
String encoded = Base64Util.encode(str);
System.out.println("编码后的字符串:" + encoded);
String decoded = Base64Util.decode(encoded);
System.out.println("解码后的字符串:" + decoded);
}
}
输出结果:
编码后的字符串:SGVsbG8gV29ybGQh
解码后的字符串:Hello World!
使用javax.xml.bind.DatatypeConverter类进行BASE64编码和解码
javax.xml.bind.DatatypeConverter
是 JDK6 时期就已经存在的类,它提供了两个静态方法 printBase64Binary(byte[] data)
和 parseBase64Binary(String lexicalXSDBase64Binary)
,分别用于将字节数组进行 BASE64 编码和将 BASE64 编码的字符串解码为字节数组。
import javax.xml.bind.DatatypeConverter;
public class Base64Util {
/**
* 对字符串进行BASE64编码
*
* @param str 原始字符串
* @return 编码后的结果
*/
public static String encode(String str) {
byte[] bytes = str.getBytes();
return DatatypeConverter.printBase64Binary(bytes);
}
/**
* 对BASE64编码的字符串进行解码
*
* @param encoded 编码后的字符串
* @return 解码后的结果
*/
public static String decode(String encoded) {
byte[] decoded = DatatypeConverter.parseBase64Binary(encoded);
return new String(decoded);
}
}
下面是一个编码和解码的示例:
public class Base64Demo {
public static void main(String[] args) {
String str = "Hello World!";
String encoded = Base64Util.encode(str);
System.out.println("编码后的字符串:" + encoded);
String decoded = Base64Util.decode(encoded);
System.out.println("解码后的字符串:" + decoded);
}
}
输出结果:
编码后的字符串:SGVsbG8gV29ybGQh
解码后的字符串:Hello World!
以上就是使用 Java JDK 1.7 对字符串进行 BASE64 编码和解码的完整攻略了,两种方法都可以实现字符串的编码和解码。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java JDK1.7对字符串的BASE64编码解码方法 - Python技术站