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

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;
	}
}

时间: 2024-10-08 20:18:53

java md5 sha 加密 的使用方法 工具类 MessageDigest的相关文章

java打开文件夹(含判断操作系统工具类和解压缩工具类)

1.Runtime.getRuntime().exec("explorer D:\\Java"); 2.java.awt.Desktop.getDesktop().open(new File("D:\\Java")); 4.java.awt.Desktop.getDesktop().browse(...) 3. try { String[] cmd = new String[5]; cmd[0] = "cmd"; cmd[1] = "/

常用文件(夹)处理方法工具类

功能:文件夹创建.文件删除.文件保存和读取.文件压缩与解压缩.excel文件打印 import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import ja

java关闭资源,自制关闭资源工具类

在网上看到一篇关于关闭资源的正确方式:http://blog.csdn.net/bornforit/article/details/6896775 该博文中的总结: (1)使用finally块来关闭物理资源(非托管资源),保证关闭操作始终会被执行: (2)关闭每个资源之前首先保证引用该资源的引用变量不为null: (3)为每个物理资源使用单独的trycatch块关闭资源,保证关闭资源时引发的异常不会影响其他资源的关闭. 在资源过多的时候,我们要在finally块中写很多的非空判断.以及try-c

常用cookie处理方法工具类

功能:cookie的添加.删除.获取值 1 import java.io.UnsupportedEncodingException; 2 import java.net.URLDecoder; 3 4 import javax.servlet.http.Cookie; 5 import javax.servlet.http.HttpServletRequest; 6 import javax.servlet.http.HttpServletResponse; 7 8 /** 9 * 常用cook

Java语言Lang包下常用的工具类介绍_java - JAVA

文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 无论你在开发哪中 Java 应用程序,都免不了要写很多工具类/工具函数.你可知道,有很多现成的工具类可用,并且代码质量都很不错,不用你写,不用你调试,只要你发现. 在 Apache Jakarta Common 中, Lang 这个 Java 工具包是所有 Apache Jakarta Common 项目中被使用最广泛的,几乎你所知道的名气比较大的软件里面都有用到它,包括 Tomcat, Weblogic, Webs

java二维码编码和解析工具类

用到两个jar包: QRCode.jar Qrcodeen.jar package com.banmacoffee.utils; import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.io.UnsupportedEncodingException; imp

Java基础知识强化93:日期工具类的编写和测试案例

1. DateUtil.java,代码如下: 1 package cn.itcast_04; 2 3 import java.text.ParseException; 4 import java.text.SimpleDateFormat; 5 import java.util.Date; 6 7 /** 8 * 这是日期和字符串相互转换的工具类 9 * 10 * @author 风清扬 11 */ 12 public class DateUtil { 13 private DateUtil()

Java从零开始学二十四点(集合工具类Collections)

一.Collections简介 在集合的应用开发中,集合的若干接口和若干个子类是最最常使用的,但是在JDK中提供了一种集合操作的工具类 —— Collections,可以直接通过此类方便的操作集合 二.Collections类的常用方法及常量 No. 方法 类型 描述 1 public static final List EMPTY_LIST 常量 返回一个空的List集合 2 public static final Set EMPTY_SET 常量 返回空的Set集合 3 public sta

java通过redisTemplate封装redis3.2.9工具类

前几天结合mongotemplate封装了下mongodb的工具类"http://ylcodes01.blog.51cto.com/5607366/1934662",现在结合redistemplate封装了下常用命令工具类,个人发现二者的数据类型操作区别还是挺大的. mongodb是出于关系型数据库和非关系型数据库中间的DB,在操作中你会发现其更倾向于关系型数据库的使用,是文档型数据库,我们项目现在利用这一特性处理了系统日志中的相关操作,mongo的整体数据以列表的形式存于mongo,