java base64编码 c 解码_java base64编码、解码的三种方式

java base64与字符串String之间的相互转换

1.用法介绍

方式一:DatatypeConverter

说明:使用jdk自带的DatatypeConverter.java类实现,但是jdk版本必须>=1.6。

import java.io.UnsupportedEncodingException;

import javax.xml.bind.DatatypeConverter;

编码

/**

* base64编码之方法一

* @explain DatatypeConverter.java实现

* @param str

* 待编码字符串

* @return 编码字符串

*/

public static String encode(String str) {

// base64字符串

String base64Str = "";

try {

// String-->byte[]

byte[] data = str.getBytes("utf-8");

// 编码

base64Str = DatatypeConverter.printBase64Binary(data);

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

return base64Str;

}

解码

/**

* base64解码之方法一

* @explain DatatypeConverter.java实现

* @param base64Str

* 待解码字符串

* @return 解码字符串

*/

public static String decode(String base64Str) {

// 解码后的字符串

String str = "";

// 解码

byte[] base64Data = DatatypeConverter.parseBase64Binary(base64Str);

try {

// byte[]-->String

str = new String(base64Data, "utf-8");

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

return str;

}

方式二:Base64

说明:使用jdk自带的Base64.java类实现,但是jdk版本必须>=1.8。

import java.io.UnsupportedEncodingException;

import java.util.Base64;

编码

/**

* base64编码之方法二

* @explain Base64.java实现

* @param str

* 待编码字符串

* @return 编码字符串

*/

public static String encode2(String str) {

// base64字符串

String base64Str = "";

try {

// String-->byte[]

byte[] data = str.getBytes("utf-8");

// 编码

base64Str =Base64.getEncoder().encodeToString(data);

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

return base64Str;

}

解码

/**

* base64解码之方法二

* @explain Base64.java实现

* @param base64Str

* 待解码字符串

* @return 解码字符串

*/

public static String decode2(String base64Str) {

// 解码后的字符串

String str = "";

// 解码

byte[] base64Data = Base64.getDecoder().decode(base64Str);

try {

// byte[]-->String

str = new String(base64Data, "utf-8");

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

return str;

}

方式三:Base64

所需jar包:commons-codec.jar

import java.io.UnsupportedEncodingException;

import org.apache.commons.codec.binary.Base64;

编码

/**

* base64编码之方法三

* @explain Base64.java实现

* @param str

* 待编码字符串

* @return 编码字符串

*/

public static String encode3(String str) {

// base64字符串

String base64Str = "";

try {

// String-->byte[]

byte[] data = str.getBytes("utf-8");

// 编码

base64Str =Base64.encodeBase64String(data).replaceAll("\r\n", "");

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

return base64Str;

}

解码

/**

* base64解码之方法三

* @explain Base64.java实现

* @param base64Str

* 待解码字符串

* @return 解码字符串

*/

public static String decode3(String base64Str) {

// 解码后的字符串

String str = "";

// 解码

byte[] base64Data = Base64.decodeBase64(base64Str);

try {

// byte[]-->String

str = new String(base64Data, "utf-8");

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

return str;

}

20200824

方式四:

所需jar包:tomcat-coyote.jar

编码与解码方式与方式三一样,这里不再赘述。

20200827

方式五:

所需jar包:spring-core.jar

用法大同小异,不再赘述。

另外,需要说明的是关于base64编码与解码的方式不只有这几种方式, 一般情况下,只有jar包中集成的base64相关的class类,就可以直接导包引用。

2.测试

public static void main(String[] args) {

String str = "http://www.cnblogs.com/Marydon20170307";

String base64 = Base64Utils.encode(str);// aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9NYXJ5ZG9uMjAxNzAzMDc=

System.out.println(base64);

String str2 = Base64Utils.decode(base64);

System.out.println(str.equals(str2));// true

}

3.效率比较

快-->慢:方式二 > 方式一 > 方式三

因此,如果项目用的是jdk1.8,最佳选择是方式二;jdk1.6,最佳选择是方式一。

20200824

4.只知其一不知其二

用了这么久的base64,但是,在前段时间的接口对接过程中,却因为它栽了跟头,有必要进行一次总结回顾。

base64,我们通常的用途有两种:第一种,图片转码;第二种,作为数据加密的方式、步骤之一。

encodeBase64和encodeBase64URLSafe

一般情况下,我们只用到了第一个,没有用到第二个,绝大部分人用的也是第一个,网站在线解析也是如此,这就造成了我们只知其一不知其二。

二者区别:

encodeBase64会对字符串3位一组自动补全,因而最后可能会出现 == 或者 =(缺一个补一个=,缺两个补两个=);

encodeBase64URLSafe则是按照字符串实际位数进行加密,不补全,不会出现 == 或者 =

举个例子:

待编码字符串:Marydon,编码后分别是:TWFyeWRvbg、TWFyeWRvbg==。

上面的区别介绍是从网上找到的,但并没有说全,再看另外两个例子

待编码字符串:

{"RegionCode":"410000","IvcAgcCode":"507403","Items":[{"ItemCode":"913001001","ItemName":"诊察费","IvcType":"1","Stands":[{"UpLimit":0,"StandCode":"001","LowerLimit":0,"Unit":"元","StandName":"诊察费"}]},{"ItemCode":"913001002","ItemName":"检查费","IvcType":"1","Stands":[{"UpLimit":0,"StandCode":"001","LowerLimit":0,"Unit":"元","StandName":"检查费"}]},{"ItemCode":"913001003","ItemName":"化验费","IvcType":"1","Stands":[{"UpLimit":0,"StandCode":"001","LowerLimit":0,"Unit":"元","StandName":"化验费"}]},{"ItemCode":"913001004","ItemName":"治疗费","IvcType":"1","Stands":[{"UpLimit":0,"StandCode":"001","LowerLimit":0,"Unit":"元","StandName":"治疗费"}]},{"ItemCode":"913001005","ItemName":"手术费","IvcType":"1","Stands":[{"UpLimit":0,"StandCode":"001","LowerLimit":0,"Unit":"元","StandName":"手术费"}]},{"ItemCode":"913001006","ItemName":"卫生材料费","IvcType":"1","Stands":[{"UpLimit":0,"StandCode":"001","LowerLimit":0,"Unit":"元","StandName":"卫生材料费"}]},{"ItemCode":"913001007","ItemName":"西药费","IvcType":"1","Stands":[{"UpLimit":0,"StandCode":"001","LowerLimit":0,"Unit":"元","StandName":"西药费"}]},{"ItemCode":"913001008","ItemName":"中药饮片","IvcType":"1","Stands":[{"UpLimit":0,"StandCode":"001","LowerLimit":0,"Unit":"元","StandName":"中药饮片"}]},{"ItemCode":"913001009","ItemName":"中成药费","IvcType":"1","Stands":[{"UpLimit":0,"StandCode":"001","LowerLimit":0,"Unit":"元","StandName":"中成药费"}]},{"ItemCode":"913001010","ItemName":"挂号费","IvcType":"1","Stands":[{"UpLimit":0,"StandCode":"001","LowerLimit":0,"Unit":"元","StandName":"挂号费"}]},{"ItemCode":"913001011","ItemName":"一般诊疗费","IvcType":"1","Stands":[{"UpLimit":0,"StandCode":"001","LowerLimit":0,"Unit":"元","StandName":"一般诊疗费"}]},{"ItemCode":"913001012","ItemName":"其他门诊费","IvcType":"1","Stands":[{"UpLimit":0,"StandCode":"001","LowerLimit":0,"Unit":"元","StandName":"其他门诊费"}]},{"ItemCode":"913002001","ItemName":"床位费","IvcType":"2","Stands":[{"UpLimit":0,"StandCode":"001","LowerLimit":0,"Unit":"元","StandName":"床位费"}]},{"ItemCode":"913002002","ItemName":"诊察费","IvcType":"2","Stands":[{"UpLimit":0,"StandCode":"001","LowerLimit":0,"Unit":"元","StandName":"诊察费"}]},{"ItemCode":"913002003","ItemName":"检查费","IvcType":"2","Stands":[{"UpLimit":0,"StandCode":"001","LowerLimit":0,"Unit":"元","StandName":"检查费"}]},{"ItemCode":"913002004","ItemName":"化验费","IvcType":"2","Stands":[{"UpLimit":0,"StandCode":"001","LowerLimit":0,"Unit":"元","StandName":"化验费"}]},{"ItemCode":"913002005","ItemName":"治疗费","IvcType":"2","Stands":[{"UpLimit":0,"StandCode":"001","LowerLimit":0,"Unit":"元","StandName":"治疗费"}]},{"ItemCode":"913002006","ItemName":"手术费","IvcType":"2","Stands":[{"UpLimit":0,"StandCode":"001","LowerLimit":0,"Unit":"元","StandName":"手术费"}]},{"ItemCode":"913002007","ItemName":"护理费","IvcType":"2","Stands":[{"UpLimit":0,"StandCode":"001","LowerLimit":0,"Unit":"元","StandName":"护理费"}]},{"ItemCode":"913002008","ItemName":"卫生材料费","IvcType":"2","Stands":[{"UpLimit":0,"StandCode":"001","LowerLimit":0,"Unit":"元","StandName":"卫生材料费"}]},{"ItemCode":"913002009","ItemName":"西药费","IvcType":"2","Stands":[{"UpLimit":0,"StandCode":"001","LowerLimit":0,"Unit":"元","StandName":"西药费"}]},{"ItemCode":"913002010","ItemName":"中药饮片","IvcType":"2","Stands":[{"UpLimit":0,"StandCode":"001","LowerLimit":0,"Unit":"元","StandName":"中药饮片"}]},{"ItemCode":"913002011","ItemName":"中成药费","IvcType":"2","Stands":[{"UpLimit":0,"StandCode":"001","LowerLimit":0,"Unit":"元","StandName":"中成药费"}]},{"ItemCode":"913002012","ItemName":"一般诊疗费","IvcType":"2","Stands":[{"UpLimit":0,"StandCode":"001","LowerLimit":0,"Unit":"元","StandName":"一般诊疗费"}]},{"ItemCode":"913002013","ItemName":"其他住院费用","IvcType":"2","Stands":[{"UpLimit":0,"StandCode":"001","LowerLimit":0,"Unit":"元","StandName":"其他住院费用"}]}]}

encodeBase64编码结果:

eyJSZWdpb25Db2RlIjoiNDEwMDAwIiwiSXZjQWdjQ29kZSI6IjUwNzQwMyIsIkl0ZW1zIjpbeyJJdGVtQ29kZSI6IjkxMzAwMTAwMSIsIkl0ZW1OYW1lIjoi6K+K5a+f6LS5IiwiSXZjVHlwZSI6IjEiLCJTdGFuZHMiOlt7IlVwTGltaXQiOjAsIlN0YW5kQ29kZSI6IjAwMSIsIkxvd2VyTGltaXQiOjAsIlVuaXQiOiLlhYMiLCJTdGFuZE5hbWUiOiLor4rlr5/otLkifV19LHsiSXRlbUNvZGUiOiI5MTMwMDEwMDIiLCJJdGVtTmFtZSI6IuajgOafpei0uSIsIkl2Y1R5cGUiOiIxIiwiU3RhbmRzIjpbeyJVcExpbWl0IjowLCJTdGFuZENvZGUiOiIwMDEiLCJMb3dlckxpbWl0IjowLCJVbml0Ijoi5YWDIiwiU3RhbmROYW1lIjoi5qOA5p+l6LS5In1dfSx7Ikl0ZW1Db2RlIjoiOTEzMDAxMDAzIiwiSXRlbU5hbWUiOiLljJbpqozotLkiLCJJdmNUeXBlIjoiMSIsIlN0YW5kcyI6W3siVXBMaW1pdCI6MCwiU3RhbmRDb2RlIjoiMDAxIiwiTG93ZXJMaW1pdCI6MCwiVW5pdCI6IuWFgyIsIlN0YW5kTmFtZSI6IuWMlumqjOi0uSJ9XX0seyJJdGVtQ29kZSI6IjkxMzAwMTAwNCIsIkl0ZW1OYW1lIjoi5rK755aX6LS5IiwiSXZjVHlwZSI6IjEiLCJTdGFuZHMiOlt7IlVwTGltaXQiOjAsIlN0YW5kQ29kZSI6IjAwMSIsIkxvd2VyTGltaXQiOjAsIlVuaXQiOiLlhYMiLCJTdGFuZE5hbWUiOiLmsrvnlpfotLkifV19LHsiSXRlbUNvZGUiOiI5MTMwMDEwMDUiLCJJdGVtTmFtZSI6IuaJi+acr+i0uSIsIkl2Y1R5cGUiOiIxIiwiU3RhbmRzIjpbeyJVcExpbWl0IjowLCJTdGFuZENvZGUiOiIwMDEiLCJMb3dlckxpbWl0IjowLCJVbml0Ijoi5YWDIiwiU3RhbmROYW1lIjoi5omL5pyv6LS5In1dfSx7Ikl0ZW1Db2RlIjoiOTEzMDAxMDA2IiwiSXRlbU5hbWUiOiLljavnlJ/mnZDmlpnotLkiLCJJdmNUeXBlIjoiMSIsIlN0YW5kcyI6W3siVXBMaW1pdCI6MCwiU3RhbmRDb2RlIjoiMDAxIiwiTG93ZXJMaW1pdCI6MCwiVW5pdCI6IuWFgyIsIlN0YW5kTmFtZSI6IuWNq+eUn+adkOaWmei0uSJ9XX0seyJJdGVtQ29kZSI6IjkxMzAwMTAwNyIsIkl0ZW1OYW1lIjoi6KW/6I2v6LS5IiwiSXZjVHlwZSI6IjEiLCJTdGFuZHMiOlt7IlVwTGltaXQiOjAsIlN0YW5kQ29kZSI6IjAwMSIsIkxvd2VyTGltaXQiOjAsIlVuaXQiOiLlhYMiLCJTdGFuZE5hbWUiOiLopb/oja/otLkifV19LHsiSXRlbUNvZGUiOiI5MTMwMDEwMDgiLCJJdGVtTmFtZSI6IuS4reiNr+mlrueJhyIsIkl2Y1R5cGUiOiIxIiwiU3RhbmRzIjpbeyJVcExpbWl0IjowLCJTdGFuZENvZGUiOiIwMDEiLCJMb3dlckxpbWl0IjowLCJVbml0Ijoi5YWDIiwiU3RhbmROYW1lIjoi5Lit6I2v6aWu54mHIn1dfSx7Ikl0ZW1Db2RlIjoiOTEzMDAxMDA5IiwiSXRlbU5hbWUiOiLkuK3miJDoja/otLkiLCJJdmNUeXBlIjoiMSIsIlN0YW5kcyI6W3siVXBMaW1pdCI6MCwiU3RhbmRDb2RlIjoiMDAxIiwiTG93ZXJMaW1pdCI6MCwiVW5pdCI6IuWFgyIsIlN0YW5kTmFtZSI6IuS4reaIkOiNr+i0uSJ9XX0seyJJdGVtQ29kZSI6IjkxMzAwMTAxMCIsIkl0ZW1OYW1lIjoi5oyC5Y+36LS5IiwiSXZjVHlwZSI6IjEiLCJTdGFuZHMiOlt7IlVwTGltaXQiOjAsIlN0YW5kQ29kZSI6IjAwMSIsIkxvd2VyTGltaXQiOjAsIlVuaXQiOiLlhYMiLCJTdGFuZE5hbWUiOiLmjILlj7fotLkifV19LHsiSXRlbUNvZGUiOiI5MTMwMDEwMTEiLCJJdGVtTmFtZSI6IuS4gOiIrOiviueWl+i0uSIsIkl2Y1R5cGUiOiIxIiwiU3RhbmRzIjpbeyJVcExpbWl0IjowLCJTdGFuZENvZGUiOiIwMDEiLCJMb3dlckxpbWl0IjowLCJVbml0Ijoi5YWDIiwiU3RhbmROYW1lIjoi5LiA6Iis6K+K55aX6LS5In1dfSx7Ikl0ZW1Db2RlIjoiOTEzMDAxMDEyIiwiSXRlbU5hbWUiOiLlhbbku5bpl6jor4rotLkiLCJJdmNUeXBlIjoiMSIsIlN0YW5kcyI6W3siVXBMaW1pdCI6MCwiU3RhbmRDb2RlIjoiMDAxIiwiTG93ZXJMaW1pdCI6MCwiVW5pdCI6IuWFgyIsIlN0YW5kTmFtZSI6IuWFtuS7lumXqOiviui0uSJ9XX0seyJJdGVtQ29kZSI6IjkxMzAwMjAwMSIsIkl0ZW1OYW1lIjoi5bqK5L2N6LS5IiwiSXZjVHlwZSI6IjIiLCJTdGFuZHMiOlt7IlVwTGltaXQiOjAsIlN0YW5kQ29kZSI6IjAwMSIsIkxvd2VyTGltaXQiOjAsIlVuaXQiOiLlhYMiLCJTdGFuZE5hbWUiOiLluorkvY3otLkifV19LHsiSXRlbUNvZGUiOiI5MTMwMDIwMDIiLCJJdGVtTmFtZSI6IuiviuWvn+i0uSIsIkl2Y1R5cGUiOiIyIiwiU3RhbmRzIjpbeyJVcExpbWl0IjowLCJTdGFuZENvZGUiOiIwMDEiLCJMb3dlckxpbWl0IjowLCJVbml0Ijoi5YWDIiwiU3RhbmROYW1lIjoi6K+K5a+f6LS5In1dfSx7Ikl0ZW1Db2RlIjoiOTEzMDAyMDAzIiwiSXRlbU5hbWUiOiLmo4Dmn6XotLkiLCJJdmNUeXBlIjoiMiIsIlN0YW5kcyI6W3siVXBMaW1pdCI6MCwiU3RhbmRDb2RlIjoiMDAxIiwiTG93ZXJMaW1pdCI6MCwiVW5pdCI6IuWFgyIsIlN0YW5kTmFtZSI6IuajgOafpei0uSJ9XX0seyJJdGVtQ29kZSI6IjkxMzAwMjAwNCIsIkl0ZW1OYW1lIjoi5YyW6aqM6LS5IiwiSXZjVHlwZSI6IjIiLCJTdGFuZHMiOlt7IlVwTGltaXQiOjAsIlN0YW5kQ29kZSI6IjAwMSIsIkxvd2VyTGltaXQiOjAsIlVuaXQiOiLlhYMiLCJTdGFuZE5hbWUiOiLljJbpqozotLkifV19LHsiSXRlbUNvZGUiOiI5MTMwMDIwMDUiLCJJdGVtTmFtZSI6Iuayu+eWl+i0uSIsIkl2Y1R5cGUiOiIyIiwiU3RhbmRzIjpbeyJVcExpbWl0IjowLCJTdGFuZENvZGUiOiIwMDEiLCJMb3dlckxpbWl0IjowLCJVbml0Ijoi5YWDIiwiU3RhbmROYW1lIjoi5rK755aX6LS5In1dfSx7Ikl0ZW1Db2RlIjoiOTEzMDAyMDA2IiwiSXRlbU5hbWUiOiLmiYvmnK/otLkiLCJJdmNUeXBlIjoiMiIsIlN0YW5kcyI6W3siVXBMaW1pdCI6MCwiU3RhbmRDb2RlIjoiMDAxIiwiTG93ZXJMaW1pdCI6MCwiVW5pdCI6IuWFgyIsIlN0YW5kTmFtZSI6IuaJi+acr+i0uSJ9XX0seyJJdGVtQ29kZSI6IjkxMzAwMjAwNyIsIkl0ZW1OYW1lIjoi5oqk55CG6LS5IiwiSXZjVHlwZSI6IjIiLCJTdGFuZHMiOlt7IlVwTGltaXQiOjAsIlN0YW5kQ29kZSI6IjAwMSIsIkxvd2VyTGltaXQiOjAsIlVuaXQiOiLlhYMiLCJTdGFuZE5hbWUiOiLmiqTnkIbotLkifV19LHsiSXRlbUNvZGUiOiI5MTMwMDIwMDgiLCJJdGVtTmFtZSI6IuWNq+eUn+adkOaWmei0uSIsIkl2Y1R5cGUiOiIyIiwiU3RhbmRzIjpbeyJVcExpbWl0IjowLCJTdGFuZENvZGUiOiIwMDEiLCJMb3dlckxpbWl0IjowLCJVbml0Ijoi5YWDIiwiU3RhbmROYW1lIjoi5Y2r55Sf5p2Q5paZ6LS5In1dfSx7Ikl0ZW1Db2RlIjoiOTEzMDAyMDA5IiwiSXRlbU5hbWUiOiLopb/oja/otLkiLCJJdmNUeXBlIjoiMiIsIlN0YW5kcyI6W3siVXBMaW1pdCI6MCwiU3RhbmRDb2RlIjoiMDAxIiwiTG93ZXJMaW1pdCI6MCwiVW5pdCI6IuWFgyIsIlN0YW5kTmFtZSI6Iuilv+iNr+i0uSJ9XX0seyJJdGVtQ29kZSI6IjkxMzAwMjAxMCIsIkl0ZW1OYW1lIjoi5Lit6I2v6aWu54mHIiwiSXZjVHlwZSI6IjIiLCJTdGFuZHMiOlt7IlVwTGltaXQiOjAsIlN0YW5kQ29kZSI6IjAwMSIsIkxvd2VyTGltaXQiOjAsIlVuaXQiOiLlhYMiLCJTdGFuZE5hbWUiOiLkuK3oja/ppa7niYcifV19LHsiSXRlbUNvZGUiOiI5MTMwMDIwMTEiLCJJdGVtTmFtZSI6IuS4reaIkOiNr+i0uSIsIkl2Y1R5cGUiOiIyIiwiU3RhbmRzIjpbeyJVcExpbWl0IjowLCJTdGFuZENvZGUiOiIwMDEiLCJMb3dlckxpbWl0IjowLCJVbml0Ijoi5YWDIiwiU3RhbmROYW1lIjoi5Lit5oiQ6I2v6LS5In1dfSx7Ikl0ZW1Db2RlIjoiOTEzMDAyMDEyIiwiSXRlbU5hbWUiOiLkuIDoiKzor4rnlpfotLkiLCJJdmNUeXBlIjoiMiIsIlN0YW5kcyI6W3siVXBMaW1pdCI6MCwiU3RhbmRDb2RlIjoiMDAxIiwiTG93ZXJMaW1pdCI6MCwiVW5pdCI6IuWFgyIsIlN0YW5kTmFtZSI6IuS4gOiIrOiviueWl+i0uSJ9XX0seyJJdGVtQ29kZSI6IjkxMzAwMjAxMyIsIkl0ZW1OYW1lIjoi5YW25LuW5L2P6Zmi6LS555SoIiwiSXZjVHlwZSI6IjIiLCJTdGFuZHMiOlt7IlVwTGltaXQiOjAsIlN0YW5kQ29kZSI6IjAwMSIsIkxvd2VyTGltaXQiOjAsIlVuaXQiOiLlhYMiLCJTdGFuZE5hbWUiOiLlhbbku5bkvY/pmaLotLnnlKgifV19XX0K

encodeBase64URLSafe编码结果:

eyJSZWdpb25Db2RlIjoiNDEwMDAwIiwiSXZjQWdjQ29kZSI6IjUwNjQwMiIsIkl0ZW1zIjpbeyJJdGVtQ29kZSI6IjkxMzAwMTAwMiIsIkl0ZW1OYW1lIjoi5qOA5p-l6LS5IiwiSXZjVHlwZSI6IjEiLCJTdGFuZHMiOlt7IlVwTGltaXQiOjAsIlN0YW5kQ29kZSI6IjAwMSIsIkxvd2VyTGltaXQiOjAsIlVuaXQiOiLlhYMiLCJTdGFuZE5hbWUiOiLmo4Dmn6XotLkifV19LHsiSXRlbUNvZGUiOiI5MTMwMDEwMDMiLCJJdGVtTmFtZSI6IuWMlumqjOi0uSIsIkl2Y1R5cGUiOiIyIiwiU3RhbmRzIjpbeyJVcExpbWl0IjowLCJTdGFuZENvZGUiOiIwMDEiLCJMb3dlckxpbWl0IjowLCJVbml0Ijoi5YWDIiwiU3RhbmROYW1lIjoi5YyW6aqM6LS5In1dfSx7Ikl0ZW1Db2RlIjoiOTEzMDAxMDA0IiwiSXRlbU5hbWUiOiLmsrvnlpfotLkiLCJJdmNUeXBlIjoiMSIsIlN0YW5kcyI6W3siVXBMaW1pdCI6MCwiU3RhbmRDb2RlIjoiMDAxIiwiTG93ZXJMaW1pdCI6MCwiVW5pdCI6IuWFgyIsIlN0YW5kTmFtZSI6Iuayu-eWl-i0uSJ9XX0seyJJdGVtQ29kZSI6IjkxMzAwMTAwNSIsIkl0ZW1OYW1lIjoi5omL5pyv6LS5IiwiSXZjVHlwZSI6IjIiLCJTdGFuZHMiOlt7IlVwTGltaXQiOjAsIlN0YW5kQ29kZSI6IjAwMSIsIkxvd2VyTGltaXQiOjAsIlVuaXQiOiLlhYMiLCJTdGFuZE5hbWUiOiLmiYvmnK_otLkifV19LHsiSXRlbUNvZGUiOiI5MTMwMDEwMDYiLCJJdGVtTmFtZSI6IuWNq-eUn-adkOaWmei0uSIsIkl2Y1R5cGUiOiIyIiwiU3RhbmRzIjpbeyJVcExpbWl0IjowLCJTdGFuZENvZGUiOiIwMDEiLCJMb3dlckxpbWl0IjowLCJVbml0Ijoi5YWDIiwiU3RhbmROYW1lIjoi5Y2r55Sf5p2Q5paZ6LS5In1dfSx7Ikl0ZW1Db2RlIjoiOTEzMDAxMDA3IiwiSXRlbU5hbWUiOiLopb_oja_otLkiLCJJdmNUeXBlIjoiMSIsIlN0YW5kcyI6W3siVXBMaW1pdCI6MCwiU3RhbmRDb2RlIjoiMDAxIiwiTG93ZXJMaW1pdCI6MCwiVW5pdCI6IuWFgyIsIlN0YW5kTmFtZSI6Iuilv-iNr-i0uSJ9XX0seyJJdGVtQ29kZSI6IjkxMzAwMTAwOCIsIkl0ZW1OYW1lIjoi5Lit6I2v6aWu54mHIiwiSXZjVHlwZSI6IjEiLCJTdGFuZHMiOlt7IlVwTGltaXQiOjAsIlN0YW5kQ29kZSI6IjAwMSIsIkxvd2VyTGltaXQiOjAsIlVuaXQiOiLlhYMiLCJTdGFuZE5hbWUiOiLkuK3oja_ppa7niYcifV19LHsiSXRlbUNvZGUiOiI5MTMwMDEwMDkiLCJJdGVtTmFtZSI6IuS4reaIkOiNr-i0uSIsIkl2Y1R5cGUiOiIyIiwiU3RhbmRzIjpbeyJVcExpbWl0IjowLCJTdGFuZENvZGUiOiIwMDEiLCJMb3dlckxpbWl0IjowLCJVbml0Ijoi5YWDIiwiU3RhbmROYW1lIjoi5Lit5oiQ6I2v6LS5In1dfSx7Ikl0ZW1Db2RlIjoiOTEzMDAxMDEwIiwiSXRlbU5hbWUiOiLmjILlj7fotLkiLCJJdmNUeXBlIjoiMSIsIlN0YW5kcyI6W3siVXBMaW1pdCI6MCwiU3RhbmRDb2RlIjoiMDAxIiwiTG93ZXJMaW1pdCI6MCwiVW5pdCI6IuWFgyIsIlN0YW5kTmFtZSI6IuaMguWPt-i0uSJ9XX0seyJJdGVtQ29kZSI6IjkxMzAwMTAxMSIsIkl0ZW1OYW1lIjoi5LiA6Iis6K-K55aX6LS5IiwiSXZjVHlwZSI6IjEiLCJTdGFuZHMiOlt7IlVwTGltaXQiOjAsIlN0YW5kQ29kZSI6IjAwMSIsIkxvd2VyTGltaXQiOjAsIlVuaXQiOiLlhYMiLCJTdGFuZE5hbWUiOiLkuIDoiKzor4rnlpfotLkifV19XX0

base64待编码字符串:

{"Type":1,"PayerPartyType":"1","RegionCode":"410000","SerialNumber":"0000007519","IvcAgcCode":"506402","MainExt":{"OtherPayAmount":"0","MedicalDate":"20190117","FundPayAmount":"0","MedicalType":"门诊","MedicalInsuranceType":"新农合","AccountPayAmount":"0","Gender":"男","OwnPayAmount":"15.00","SelfpaymentAmount":"0","MedicalInsuranceID":"104381991001","OrgType":"综合医院","PatientNumber":"1000100201","SelfpaymentCost":"0"},"PayerPartyName":"马露","RepCreater":"李四","Items":[{"ItemCode":"9940301020","ItemRemark":[],"ItemQuantity":"1","Amount":"10.00","ItemName":"检查费","ItemStd":"10.00","ItemUnit":[],"AuxItem":[{"AuxItemQuantity":"1","AuxItemAmount":"10.0000","AuxItemStd":"10.0000","AuxItemRelatedCode":"9940301020","AuxItemUnit":"人次","AuxItemRemark":"无自付","AuxItemRelatedName":"检查费","AuxItemName":"角膜曲率检查"}]},{"ItemCode":"9940301070","ItemRemark":[],"ItemQuantity":"1","Amount":"5.00","ItemName":"西药费","ItemStd":"5.00","ItemUnit":[],"AuxItem":[{"AuxItemQuantity":"1","AuxItemAmount":"5.0000","AuxItemStd":"5.0000","AuxItemRelatedCode":"9940301070","AuxItemUnit":"支","AuxItemRemark":"无自付","AuxItemRelatedName":"西药费","AuxItemName":"复方托吡卡胺滴眼液"}]}],"TotalAmount":"15.00","PayerPartyCode":[]}

base64编码结果:

eyJUeXBlIjoxLCJQYXllclBhcnR5VHlwZSI6IjEiLCJSZWdpb25Db2RlIjoiNDEwMDAwIiwiU2VyaWFsTnVtYmVyIjoiMDAwMDAwNzUxOSIsIkl2Y0FnY0NvZGUiOiI1MDY0MDIiLCJNYWluRXh0Ijp7Ik90aGVyUGF5QW1vdW50IjoiMCIsIk1lZGljYWxEYXRlIjoiMjAxOTAxMTciLCJGdW5kUGF5QW1vdW50IjoiMCIsIk1lZGljYWxUeXBlIjoi6Zeo6K-KIiwiTWVkaWNhbEluc3VyYW5jZVR5cGUiOiLmlrDlhpzlkIgiLCJBY2NvdW50UGF5QW1vdW50IjoiMCIsIkdlbmRlciI6IueUtyIsIk93blBheUFtb3VudCI6IjE1LjAwIiwiU2VsZnBheW1lbnRBbW91bnQiOiIwIiwiTWVkaWNhbEluc3VyYW5jZUlEIjoiMTA0MzgxOTkxMDAxIiwiT3JnVHlwZSI6Iue7vOWQiOWMu-mZoiIsIlBhdGllbnROdW1iZXIiOiIxMDAwMTAwMjAxIiwiU2VsZnBheW1lbnRDb3N0IjoiMCJ9LCJQYXllclBhcnR5TmFtZSI6IumprOmcsiIsIlJlcENyZWF0ZXIiOiLmnY7lm5siLCJJdGVtcyI6W3siSXRlbUNvZGUiOiI5OTQwMzAxMDIwIiwiSXRlbVJlbWFyayI6W10sIkl0ZW1RdWFudGl0eSI6IjEiLCJBbW91bnQiOiIxMC4wMCIsIkl0ZW1OYW1lIjoi5qOA5p-l6LS5IiwiSXRlbVN0ZCI6IjEwLjAwIiwiSXRlbVVuaXQiOltdLCJBdXhJdGVtIjpbeyJBdXhJdGVtUXVhbnRpdHkiOiIxIiwiQXV4SXRlbUFtb3VudCI6IjEwLjAwMDAiLCJBdXhJdGVtU3RkIjoiMTAuMDAwMCIsIkF1eEl0ZW1SZWxhdGVkQ29kZSI6Ijk5NDAzMDEwMjAiLCJBdXhJdGVtVW5pdCI6IuS6uuasoSIsIkF1eEl0ZW1SZW1hcmsiOiLml6Doh6rku5giLCJBdXhJdGVtUmVsYXRlZE5hbWUiOiLmo4Dmn6XotLkiLCJBdXhJdGVtTmFtZSI6IuinkuiGnOabsueOh-ajgOafpSJ9XX0seyJJdGVtQ29kZSI6Ijk5NDAzMDEwNzAiLCJJdGVtUmVtYXJrIjpbXSwiSXRlbVF1YW50aXR5IjoiMSIsIkFtb3VudCI6IjUuMDAiLCJJdGVtTmFtZSI6Iuilv-iNr-i0uSIsIkl0ZW1TdGQiOiI1LjAwIiwiSXRlbVVuaXQiOltdLCJBdXhJdGVtIjpbeyJBdXhJdGVtUXVhbnRpdHkiOiIxIiwiQXV4SXRlbUFtb3VudCI6IjUuMDAwMCIsIkF1eEl0ZW1TdGQiOiI1LjAwMDAiLCJBdXhJdGVtUmVsYXRlZENvZGUiOiI5OTQwMzAxMDcwIiwiQXV4SXRlbVVuaXQiOiLmlK8iLCJBdXhJdGVtUmVtYXJrIjoi5peg6Ieq5LuYIiwiQXV4SXRlbVJlbGF0ZWROYW1lIjoi6KW_6I2v6LS5IiwiQXV4SXRlbU5hbWUiOiLlpI3mlrnmiZjlkKHljaHog7rmu7TnnLzmtrIifV19XSwiVG90YWxBbW91bnQiOiIxNS4wMCIsIlBheWVyUGFydHlDb2RlIjpbXX0

base64编码结果:

eyJUeXBlIjoxLCJQYXllclBhcnR5VHlwZSI6IjEiLCJSZWdpb25Db2RlIjoiNDEwMDAwIiwiU2VyaWFsTnVtYmVyIjoiMDAwMDAwNzUxOSIsIkl2Y0FnY0NvZGUiOiI1MDY0MDIiLCJNYWluRXh0Ijp7Ik90aGVyUGF5QW1vdW50IjoiMCIsIk1lZGljYWxEYXRlIjoiMjAxOTAxMTciLCJGdW5kUGF5QW1vdW50IjoiMCIsIk1lZGljYWxUeXBlIjoi6Zeo6K+KIiwiTWVkaWNhbEluc3VyYW5jZVR5cGUiOiLmlrDlhpzlkIgiLCJBY2NvdW50UGF5QW1vdW50IjoiMCIsIkdlbmRlciI6IueUtyIsIk93blBheUFtb3VudCI6IjE1LjAwIiwiU2VsZnBheW1lbnRBbW91bnQiOiIwIiwiTWVkaWNhbEluc3VyYW5jZUlEIjoiMTA0MzgxOTkxMDAxIiwiT3JnVHlwZSI6Iue7vOWQiOWMu+mZoiIsIlBhdGllbnROdW1iZXIiOiIxMDAwMTAwMjAxIiwiU2VsZnBheW1lbnRDb3N0IjoiMCJ9LCJQYXllclBhcnR5TmFtZSI6IumprOmcsiIsIlJlcENyZWF0ZXIiOiLmnY7lm5siLCJJdGVtcyI6W3siSXRlbUNvZGUiOiI5OTQwMzAxMDIwIiwiSXRlbVJlbWFyayI6W10sIkl0ZW1RdWFudGl0eSI6IjEiLCJBbW91bnQiOiIxMC4wMCIsIkl0ZW1OYW1lIjoi5qOA5p+l6LS5IiwiSXRlbVN0ZCI6IjEwLjAwIiwiSXRlbVVuaXQiOltdLCJBdXhJdGVtIjpbeyJBdXhJdGVtUXVhbnRpdHkiOiIxIiwiQXV4SXRlbUFtb3VudCI6IjEwLjAwMDAiLCJBdXhJdGVtU3RkIjoiMTAuMDAwMCIsIkF1eEl0ZW1SZWxhdGVkQ29kZSI6Ijk5NDAzMDEwMjAiLCJBdXhJdGVtVW5pdCI6IuS6uuasoSIsIkF1eEl0ZW1SZW1hcmsiOiLml6Doh6rku5giLCJBdXhJdGVtUmVsYXRlZE5hbWUiOiLmo4Dmn6XotLkiLCJBdXhJdGVtTmFtZSI6IuinkuiGnOabsueOh+ajgOafpSJ9XX0seyJJdGVtQ29kZSI6Ijk5NDAzMDEwNzAiLCJJdGVtUmVtYXJrIjpbXSwiSXRlbVF1YW50aXR5IjoiMSIsIkFtb3VudCI6IjUuMDAiLCJJdGVtTmFtZSI6Iuilv+iNr+i0uSIsIkl0ZW1TdGQiOiI1LjAwIiwiSXRlbVVuaXQiOltdLCJBdXhJdGVtIjpbeyJBdXhJdGVtUXVhbnRpdHkiOiIxIiwiQXV4SXRlbUFtb3VudCI6IjUuMDAwMCIsIkF1eEl0ZW1TdGQiOiI1LjAwMDAiLCJBdXhJdGVtUmVsYXRlZENvZGUiOiI5OTQwMzAxMDcwIiwiQXV4SXRlbVVuaXQiOiLmlK8iLCJBdXhJdGVtUmVtYXJrIjoi5peg6Ieq5LuYIiwiQXV4SXRlbVJlbGF0ZWROYW1lIjoi6KW/6I2v6LS5IiwiQXV4SXRlbU5hbWUiOiLlpI3mlrnmiZjlkKHljaHog7rmu7TnnLzmtrIifV19XSwiVG90YWxBbW91bnQiOiIxNS4wMCIsIlBheWVyUGFydHlDb2RlIjpbXX0=

总的来说,二者区别有:

base64,编码可能会生成+,/,=,三种可能同时存在,也可能都不存在;

urlsafe,编码可能会生成-,最多有且只有这一种符号。

以后,谁再跟你谈标准的base64格式,你就可以锤他啦。

在上面介绍的5种方式中,方式三、方式四和方式五都支持base64URLSafe()方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值