在配置文件的时候,会配置用户名和密码这些敏感的信息,此时需要加密。这里提供一个简单的加密方式,话不多说,直接代码。
导入的有关jar包
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.regex.Pattern;
import org.apache.mina.util.Base64;
import sun.misc.BASE64Decoder;
一:加密
/**
* 对给定的字符串进行base64加密操作
* @param inputData
* @return
*/
public static String encodeData(String inputData) {
try {
if (null == inputData) {
return null;
}
return new String(Base64.encodeBase64(inputData.getBytes("utf-8")), "utf-8");
} catch (UnsupportedEncodingException e) {
System.out.println("加密失败!");
}
return null;
}
二:解密
/**
* 对给定的字符串进行base64解密
* @param s
* @return
*/
public static String getFromBase64(String s) {
if (s == null)
return null;
BASE64Decoder decoder = new BASE64Decoder();
try {
byte[] b = decoder.decodeBuffer(s);
// 对一些特殊的字符在处理
String b__ = URLDecoder.decode(new String(b), "utf-8");
return b__;
} catch (Exception e) {
}
return null;
}
三:如果想更复杂一些,在加密之前做子母大小写转换
/**
* 对给定的字符串进行大小写转换
* @param dbuser
* @return
*/
public static String makeStringToUpOrLow(String dbuser) {
String up_Low_string = dbuser;
String[] u_l_array = up_Low_string.split("");
// System.out.println("before-----" + up_Low_string);
StringBuffer again_username = new StringBuffer();
String low_regu = "^[a-z]+$";
String up_regu = "^[A-Z]+$";
int i = 0;
for (int j = u_l_array.length; i < j; ++i) {
String arr = u_l_array[i];
if ((arr != null) && (!("".equals(arr)))) {
if (Pattern.matches(low_regu, arr))
arr = arr.toUpperCase();
else if (Pattern.matches(up_regu, arr))
arr = arr.toLowerCase();
again_username.append(arr);
}
}
return again_username.toString();
}