在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);
}
}