package test;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
* 加密工具类
* @author gxd
*
*/
public class EncriptUtil {
public static void main(String[] args) {
String str = "我爱你23" ;
System.out.println(EncriptUtil.getMd5("MD5",str));
}
public static String getMd5(String type , String str){
String md5str = null ;
try {
//获取报文摘要算法即散列算法 传入的字符串不区分大小写 调用 getInstance 将返回已初始化过的MessageDigest对象。因此,它不需要进一步的初始化。
// 注意:这里不是单例模式产生的对象 两次拿到的对象实例是不同的 !==
// SUN提供的常用的算法名称有:MD2 MD5 SHA-1 SHA-256 SHA-384 SHA-512
MessageDigest md = MessageDigest.getInstance(type);
// 通过调用 update 方法向MessageDigest对象提传送要计算的数据 默认采用当前系统编码 gbk 采用不同编码结果是不同的
md.update(str.getBytes());
// md.update(str.getBytes("UTF8"));
// 调用 digest(摘要)方法来计算消息摘要(即生成散列码)
byte[] digest = md.digest();
// System.out.println(Arrays.toString(digest));
//对计算生成的md5使用 sun.misc.BASE64Encoder进行简单的加密。
// BASE64Encoder be = new BASE64Encoder();
// md5str = be.encode(digest);
// System.out.println(md5str);
//对生成的md5深度处理
StringBuffer sb = new StringBuffer();
for (int i = 0; i < digest.length; i++) {
sb.append(Integer.toHexString(0xff & digest[i]));
}
md5str = sb.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
throw new RuntimeException("指定加密方式不存在");
}
// System.out.println(md5str.length());
return md5str;
}
}
java md5 sha 加密 的使用方法 工具类 MessageDigest
最新推荐文章于 2024-01-28 20:11:42 发布