Md5 加密方式 对字符串进行加密
public class Md5Utils {
private static String EncoderByMd5(String str) {
try {
// 生成实现指定摘要算法的 MessageDigest 对象。
MessageDigest md = MessageDigest.getInstance("MD5");
// 先将字符串转换成字节数组,然后使用字节数组更新摘要
md.update(str.getBytes());
// 通过执行诸如填充之类的最终操作完成哈希计算。
byte[] encryContext = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
//
for (int offset = 0; offset < encryContext.length; offset++) {
i = encryContext[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i)); //16进制的加密方式
}
return buf.toString();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
//两次调用加密方法对字符串进行加密
//如果为了防止被反编译破解,可以对第一次的MD5加密码进行截取,然后再加密截取的部分。
public static String getMd5Str(String str) {
return EncoderByMd5(EncoderByMd5(str));
}
}
注意:
1、
java.security.MessageDigest类用于为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法。
简单点说就是用于生成散列码。
信息摘要是安全的单向哈希函数,它接收任意大小的数据,输出固定长度的哈希值。