java base64編碼、解碼的三種方式總結(jié)
1.用法介紹
方式一:DatatypeConverter
說明:使用jdk自帶的DatatypeConverter.java類實(shí)現(xiàn),但是jdk版本必須>=1.6。
import java.io.UnsupportedEncodingException;import javax.xml.bind.DatatypeConverter;
編碼
/** * base64編碼之方法一 * @explain DatatypeConverter.java實(shí)現(xiàn) * @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實(shí)現(xiàn) * @param base64Str * 待解碼字符串 * @return 解碼字符串 */public static String decode(String base64Str) { // 解碼后的字符串 String str = ''; // 解碼 byte[] base64Data = DatatypeConverter.parseBase64Binary(base64Str); try {// byte[]-->Stringstr = new String(base64Data, 'utf-8'); } catch (UnsupportedEncodingException e) {e.printStackTrace(); } return str;}
方式二:Base64
說明:使用jdk自帶的Base64.java類實(shí)現(xiàn),但是jdk版本必須>=1.8。
import java.io.UnsupportedEncodingException;import java.util.Base64;
編碼
/** * base64編碼之方法二 * @explain Base64.java實(shí)現(xiàn) * @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實(shí)現(xiàn) * @param base64Str * 待解碼字符串 * @return 解碼字符串 */public static String decode2(String base64Str) { // 解碼后的字符串 String str = ''; // 解碼 byte[] base64Data = Base64.getDecoder().decode(base64Str); try {// byte[]-->Stringstr = 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實(shí)現(xiàn) * @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('rn', ''); } catch (UnsupportedEncodingException e) {e.printStackTrace(); } return base64Str;}
解碼
/** * base64解碼之方法三 * @explain Base64.java實(shí)現(xiàn) * @param base64Str * 待解碼字符串 * @return 解碼字符串 */public static String decode3(String base64Str) { // 解碼后的字符串 String str = ''; // 解碼 byte[] base64Data = Base64.decodeBase64(base64Str); try {// byte[]-->Stringstr = new String(base64Data, 'utf-8'); } catch (UnsupportedEncodingException e) {e.printStackTrace(); } return str;}
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.效率比較
快-->慢:方式二 > 方式一 > 方式三
因此,如果項(xiàng)目用的是jdk1.8,最佳選擇是方式二;jdk1.6,最佳選擇是方式一。
以上就是java base64編碼、解碼的三種方式總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于java base64編碼、解碼的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. 基于PHP做個(gè)圖片防盜鏈2. php使用正則驗(yàn)證密碼字段的復(fù)雜強(qiáng)度原理詳細(xì)講解 原創(chuàng)3. ASP.NET MVC使用Boostrap實(shí)現(xiàn)產(chǎn)品展示、查詢、排序、分頁4. XML在語音合成中的應(yīng)用5. jscript與vbscript 操作XML元素屬性的代碼6. asp.net core 認(rèn)證和授權(quán)實(shí)例詳解7. ASP.NET MVC把數(shù)據(jù)庫中枚舉項(xiàng)的數(shù)字轉(zhuǎn)換成文字8. 如何使用ASP.NET Core 配置文件9. .NET中實(shí)現(xiàn)對(duì)象數(shù)據(jù)映射示例詳解10. 基于javaweb+jsp實(shí)現(xiàn)企業(yè)車輛管理系統(tǒng)
