Java Base64編碼使用介紹
Base64編碼介紹
BASE64 編碼是一種常用的字元編碼,Base64編碼本質上是一種將二進位制資料轉成文字資料的方案。
但base64不是安全領域下的加密解密演算法。能起到安全作用的效果很差,而且很容易破解,他核心作用應該是傳輸資料的正確性,有些閘道器或系統只能使用ASCII字元。
Base64就是用來將非ASCII字元的資料轉換成ASCII字元的一種方法,而且base64特別適合在http,mime協議下快速傳輸資料。
使用場景
1.對資料傳輸過程中不可見字元的處理;
2.將圖片二進位制轉為Base64編碼嵌入網頁,可有效減少HTTP請求圖片帶來效能提升;
Java對於Base64編碼的支援,
這裡只講原生JDK支援,足夠你用的,別搞些第三方的:
package com.dylan.security;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import java.io.IOException;
import java.util.Base64;
/**
* Base64編碼測試類
*
* @author xusucheng
* @create 2017-12-19
**/
public class TestBase64 {
public static final String toEncode="Hello Base64!";
/**
* jdk8以前
* @throws IOException
*/
public static void TestBase64Old() throws IOException {
//編碼
BASE64Encoder encoder=new BASE64Encoder();
String encoded = encoder.encode(toEncode.getBytes());
System.out.println("編碼後:"+encoded);
//解碼
BASE64Decoder decoder=new BASE64Decoder();
byte[] decoded = decoder.decodeBuffer(encoded);
System.out.println("解碼後:"+new String(decoded));
}
/**
* jdk1.8後
*/
public static void TestBase64New(){
//編碼
String encoded = Base64.getEncoder().encodeToString(toEncode.getBytes());
System.out.println("編碼後:"+encoded);
//解碼
byte[] decoded = Base64.getDecoder().decode(encoded);
System.out.println("解碼後:"+new String(decoded));
}
public static void main(String[] args) throws IOException {
System.out.println("Before JDK1.8:");
TestBase64Old();
System.out.println("After JDK1.8:");
TestBase64New();
}
}
輸出:
Before JDK1.8:
編碼後:SGVsbG8gQmFzZTY0IQ==
解碼後:Hello Base64!
From JDK1.8:
加密後:SGVsbG8gQmFzZTY0IQ==
解碼後:Hello Base64!
相關文章
- Base64編碼的全面介紹
- Java字串編碼介紹Java字串編碼
- Java之Base64編碼解析Java
- Java 8中的Base64編碼和解碼Java
- 【Java小工匠】密碼學--base64編碼Java密碼學
- Unicode編碼介紹Unicode
- Base64編碼
- ASCII編碼的全面介紹ASCII
- android Java BASE64編碼和解碼一:基礎AndroidJava
- base64 編碼原理
- Base64系列第二篇 python中使用Base64編碼解碼Python
- Base64 編碼的程式設計使用.md程式設計
- 將ttf檔案base64編碼後使用
- java ShutdownHook介紹與使用JavaHook
- Base64 編碼解碼原理
- 從原理上搞定編碼-- Base64編碼
- 【字元編碼】字元編碼 && Base64編碼演算法字元演算法
- Unicode編碼解碼的全面介紹Unicode
- netty系列之:java中的base64編碼器NettyJava
- WebAssembly體驗之編碼base64(AssemblyScript使用教程)Web
- Java Selenide 介紹&使用JavaIDE
- java .stream(). 使用介紹 Streams APIJavaAPI
- RocketMQ--原始碼編譯和介紹MQ原始碼編譯
- css編碼規範簡單介紹CSS
- HTML編碼規範簡單介紹HTML
- java中的編碼簡介Java
- java base64編碼 加密和解密(切記注意亂碼問題)Java加密解密
- 計算機編碼規則之:Base64編碼計算機
- 【字元編碼系列】Base64編碼原理以及實現字元
- Shell指令碼介紹與使用指令碼
- Java介紹Java
- java.util.Arrays 快速使用介紹Java
- 04 原始碼編譯安裝與介紹原始碼編譯
- PKI 證書檔案編碼格式介紹
- Go彙編語法和MatrixOne使用介紹Go
- rust實戰系列-base64編碼Rust
- Base64編碼知識詳解
- base64編碼原理和函式函式