BASE64编码解码快代码
来源:互联网 发布:mac下载软件需要验证 编辑:程序博客网 时间:2024/05/17 23:30
一:
import java.io.UnsupportedEncodingException;
/**
* BASE64编解码工具
*/
public class Base64Util {
/**
* BASE64编码
*
* @param stringbyte
* @return
*/
public static String encrypt(byte[] stringbyte) {
String result = null;
if (null!=stringbyte) {
result = new sun.misc.BASE64Encoder().encode(stringbyte);
}
return result;
}
/**
* BASE64编码
*
* @param string
* 要编码的字符串
* @param charsetName
* 字符串编码
* @return
*/
public static String encrypt(String string, String charsetName) {
String result = null;
if (ObjectUtil.isNotEmpty(string)) {
byte[] stringbyte = null;
try {
stringbyte = string.getBytes(charsetName);
} catch (UnsupportedEncodingException e) {
throw new RuntimeException("请使用正确的编码");
}
result = encrypt(stringbyte);
}
return result;
}
/**
* BASE64解码
*
* @param base64
* 待解码字符串
* @return
*/
public static byte[] decrypt(String base64) {
byte[] result = null;
if (ObjectUtil.isNotEmpty(base64)) {
sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();
try {
result = decoder.decodeBuffer(base64);
} catch (Exception e) {
throw new RuntimeException("解码失败");
}
}
return result;
}
/**
* BASE64解码
*
* @param base64
* 待解码字符串
* @param charsetName
* 解码后字符串编码方式
* @return
*/
public static String decrypt(String base64, String charsetName) {
String result = null;
try {
result = new String(decrypt(base64), charsetName);
} catch (UnsupportedEncodingException e) {
throw new RuntimeException("请使用正确的编码");
}
return result;
}
}
二:使用
//queryString为64编码之后的字符串,例如http后面的参数:idcard=330501197211067128&diagnosisCode=A20.200&fillOrganCode=SZ586004
1. Map<String, Object[]> paramMap = decrypt(queryString);
2. public Map<String, Object[]> decrypt(String queryString) {
//先用UTF-8解析看有没有编码参数
Map<String, Object[]> map = null;
String parameters = "";
parameters = Base64Util.decrypt((queryString.replaceAll(" ","+")), "UTF-8");
if (ObjectUtil.isNotEmpty(parameters)){
try{
map = convertQueryToReport(parameters);
}catch (Exception e) {
logger.error("参数解析失败", e);
}
}
return map;
}
3.
/**
* 将参数字符串转换为map
* @param query=idcard=330501197211067128&diagnosisCode=A20.200&fillOrganCode=SZ586004
* @return
*/
private Map<String, Object[]> convertQueryToReport(String query) {
Map<String, Object[]> map = new HashMap<String, Object[]>();
String params[] = query.split("&");
for (String param : params) {
if (param.indexOf("=") > 0) {
String keyValues[] = param.split("=");
if (keyValues.length == 2) {
String value=keyValues[1] ;
value=value==null?"":value.trim();
map.put(keyValues[0], new Object[] { value});
} else if (keyValues.length == 1) {
map.put(keyValues[0], new Object[] { "" });
}
}
}
return map;
}
- BASE64编码解码快代码
- JavaScript Base64编码解码代码
- BASE64的编码和解码代码
- base64编码和解码
- base64编码/解码
- BASE64编码和解码
- Base64编码解码
- Base64编码与解码
- Base64编码及解码
- BASE64编码与解码
- BASE64编码与解码
- Base64编码/解码模块
- base64编码/解码
- Base64编码/解码模块
- base64编码解码函数
- BASE64编码解码算法
- base64编码/解码 javascript
- base64编码/解码 javascript
- tail head -n的符号不同的区别
- nodejs中的ejs模板学习
- 技能掌握
- 【cmd】中文化
- java实现二叉排序树实现前中后遍历
- BASE64编码解码快代码
- JAVA 基于阿里云平台的短信服务
- jdk1.7之HashSet
- 微信获取用户信息
- STM32工程新建——基于MDK5
- 女黑客破解4款共享单车App 仅用1分钟
- DoTween要点记录
- Python中接口设计的相关包(zope.interface)
- angular设置路由实现无刷新跳转