在base64進行編碼時,若是要經過http請求,則會出現丟失數據的現象;實際是url中傳輸,須要注意+/符號,這2個符號有時會引發一些異常。可使用Commons Codec實現java
代碼原創地址:http://blog.csdn.net/lonelyroamer/article/details/7638435apache
import java.io.UnsupportedEncodingException; 工具
import org.apache.commons.codec.binary.Base64; 測試
/** 編碼
* 封裝Base64的工具類 加密
*/ url
class UrlBase64Coder { spa
public final static String ENCODING = "UTF-8"; .net
// 加密 code
public static String encoded(String data) throws UnsupportedEncodingException {
byte[] b = Base64.encodeBase64URLSafe(data.getBytes(ENCODING));
return new String(b, ENCODING);
}
// 解密
public static String decode(String data) throws UnsupportedEncodingException {
byte[] b = Base64.decodeBase64(data.getBytes(ENCODING));
return new String(b, ENCODING);
}
}
/**
* 測試類
*/
public class UrlBase64Test {
public static void main(String[] args) throws UnsupportedEncodingException {
String str = "Ad31";
// 加密該字符串
String encodedString = UrlBase64Coder.encoded(str);
System.out.println(encodedString);
// 解密該字符串
String decodedString = UrlBase64Coder.decode(encodedString);
System.out.println(decodedString);
}
}