MD5加密
/**
* MD5加密
*
* @param inStr
* @return
*/
public static String password(String inStr) {
//1.获取到MD5对象
MessageDigest md5 = null;
try {
md5 = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return "";
}
//2.将字符串对象的每一个字符串转为一个字符数组
char[] chars = inStr.toCharArray();
//3.定义一个长度和字符数组一样的字节数组
byte[] bytes = new byte[chars.length];
//4.遍历字符数组 拿到每一个字符
for (int i = 0; i < chars.length; i++)
bytes[i] = (byte) chars[i];
//把MD5对象对数组进行摘要,得到一个摘要字节数组
byte[] digest = md5.digest(bytes);
//把数组中的每一个字节转化成16进制,并拼在一起
StringBuffer haxValue = new StringBuffer();
for (int i = 0; i < digest.length; i++) {
//把再要字节数组中的每一个字节转换成16进制
int val = ((int) digest[i]) & 0xff;
if (val < 16)
//如果生成的数字未满32位,需要在前面补0
haxValue.append("0");
haxValue.append(Integer.toHexString(val));
}
return haxValue.toString();
}
加盐加密
/**
* 加盐加密
*
* @param inStr
* @return
*/
public static String kl(String inStr) {
//1.把加密的字符串转换成字符串数组
char[] toCharArray = inStr.toCharArray();
for (int i = 0; i < toCharArray.length; i++) {
//异或运算符 toCharArray[i]和't'两个值不相同,异或结果为1相同为0
toCharArray[i] = (char) (toCharArray[i] ^ 't');
}
String s = new String(toCharArray);
return s;
}