Base64編碼解碼

BASE64和其餘類似的編碼算法一般用於轉換二進制數據爲文本數據,其目的是爲了簡化存儲或傳輸。更具體地說,BASE64算法主要用於轉換二進制數據爲ASCII字符串格式。java

常見的幾種Base64算法算法

1.Java自帶的Base64算法

        要使用Base64Encoder,卻發如今Eclipse中沒法找到該類,原來Base64Encoder並不屬於JDK標準庫範疇,可是又包含在了JDK中。ui

問題的解決方案: Project->Properties,選擇Java Build Path設置項,再選擇Libraries標籤,Add External Jars添加%JAVA_HOME%\jre\lib\rt.jar就行。編碼

/**
	 * Java自帶的Base64算法
	 */
	public static void JDKBase64(String string) throws IOException{
		   //JDK 提供的Base64算法 對象
			BASE64Encoder encode=new BASE64Encoder();
			//Base64 編碼
			String encoder = encode.encode(string.getBytes());
			System.out.println("encode: " + encoder);
		
			BASE64Decoder decode=new BASE64Decoder();
			byte[] decodeBuffer = decode.decodeBuffer(encoder);
			System.out.println("decode: " + new String(decodeBuffer));
	}

2.commons-codec的Base64算法

    使用前引入依賴:spa

<dependency>
		<groupId>commons-codec</groupId>
		<artifactId>commons-codec</artifactId>
		<version>1.5</version>
	</dependency>

    code:code

/**
	 * commons-codec的Base64算法
	 */
	public static void  codecBase64(String string){
		//編碼
		byte[] encodeBase64 = Base64.encodeBase64(string.getBytes());
		System.out.println("encode: " + Hex.encodeHexString(encodeBase64));
		
		//解碼
		byte[] decodeBase64 = Base64.decodeBase64(encodeBase64);
		System.out.println("decode: " + new String(decodeBase64));
	}

    

3.bouncycastle的Base64算法

使用前引入依賴:xml

<dependency>
		<groupId>org.bouncycastle</groupId>
		<artifactId>bcprov-jdk15on</artifactId>
		<version>1.54</version>
	</dependency>

code:對象

/**
	 *  Bouncy Castle的Base64算法
	 */
	public static void bcBase64(String string){
		//編碼
		
		byte[] encode = org.bouncycastle.util.encoders.Base64.encode(string.getBytes());
		System.out.println("encode: " + new String(encode));
		//解碼
		byte[] decode = org.bouncycastle.util.encoders.Base64.decode(encode);
		System.out.println("decode: " + new String(decode));
	}
相關文章
相關標籤/搜索