思路是将传递的参数全部转换为base64字符串。 前一篇文章将字符串转为字节码数组,但是有个显著地问题就是长度太长,其长度大约为原字符串的3.5倍。如果转换为base64,其长度大约只是原字符串的1.5倍,非常节省资源。
值得注意的是,java1.8有base64的encode和decode方法,低版本比如1.6没有。 以下是示例代码:
import java.util.Base64;
public class MyClass01 {
public MyClass01() {
String str="uid=root&pwd=123456&msg=哈罗";
byte b1[]=str.getBytes();
String base64_str=Base64.getEncoder().encodeToString(b1);
System.out.println("str:" + str);
System.out.println("转换成base64 string为:" + base64_str);
byte b2[]=Base64.getDecoder().decode(base64_str);
String str2=new String(b2);
System.out.println("再将base64 string还原为:" + str2);
}
public static void main(String[] args) {
new MyClass01();
}
}
运行结果:
str:uid=root&pwd=123456&msg=哈罗
转换成base64 string为:dWlkPXJvb3QmcHdkPTEyMzQ1NiZtc2c9uf7C3g==
再将base64 string还原为:uid=root&pwd=123456&msg=哈罗
|