码迷,mamicode.com
首页 > 编程语言 > 详细

java md5 sha 加密 的使用方法 工具类 MessageDigest

时间:2014-09-05 16:18:11      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:加密   java   md5   算法   base64   

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

标签:加密   java   md5   算法   base64   

原文地址:http://blog.csdn.net/responsecool/article/details/39080785

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!