Java利用MessageDigest进行MD5加密

MD5加密工具类:

package com.lijianbo.test;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import org.apache.commons.lang3.StringUtils;

/**
 * MD5加密算法工具类
 * @author bbo
 *
 */
public class MD5Utils {
	/*
	 * 为了提高安全性,我们又额外加了一串随机字符串
	 */
	private static final String USER_PWD_ENCP_PREFIX = "LDHDSFHWRERHESLM";

	/**
	 * 用户密码加密
	 * @param beforeEncp
	 * @return
	 */
	public static String encode(final String beforeEncp){
		if(StringUtils.isBlank(beforeEncp)){
			return beforeEncp;
		}
		return encryptMD5(USER_PWD_ENCP_PREFIX+beforeEncp);
	}

	/**
	 * md5加密
	 * @param strInput
	 * @return
	 */
	private static String encryptMD5(final String strInput) {
		StringBuffer buf = null;
		try {
			// 拿到一个MD5转换器(如果想要SHA1参数换成”SHA1”)  
			MessageDigest md = MessageDigest.getInstance("MD5"); 
			// 输入的字符串转换成字节数组   
			md.update(strInput.getBytes());
			 // 转换并返回结果,也是字节数组,包含16个元素  
			byte b[] = md.digest();
			// new一个StringBuffer,这个就是用来组成结果字符串的(解释一下:一个byte是八位二进制,也就是2位十六进制字符(2的8次方等于16的2次方))  
			buf = new StringBuffer(b.length * 2);
			//遍历
			for (int i = 0; i < b.length; i++) {
				if (((int) b[i] & 0xff) < 0x10) { //(int) b[i] & 0xff 转换成无符号整型
					buf.append("0");
				}
				//Long.toHexString( 无符号长整数的十六进制字符串表示
				buf.append(Long.toHexString((int) b[i] & 0xff)); 
			}
		} catch (NoSuchAlgorithmException ex) {
			ex.printStackTrace();
		}
		return buf==null?null:buf.toString(); //返回加密后 的结果
	}

}

调用方式:

	String passwordMd5=MD5Utils.encode(password);				

生成第三方秘钥:

	public static void main(String[] args) {
		try {
			System.out.println(MD5Utils.encode("168544234123234192.168.12.10disanfangmiyao123456789012345", "GBK").length());;
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
时间: 2024-07-30 06:50:07

Java利用MessageDigest进行MD5加密的相关文章

Java之 SHA1 与MD5加密

一.SHA1加密 1 /* 2 * SHA1加密,结果为小写 3 */ 4 public static String SHA1(String decript) { 5 try { 6 MessageDigest digest = java.security.MessageDigest 7 .getInstance("SHA-1"); 8 digest.update(decript.getBytes()); 9 byte messageDigest[] = digest.digest()

利用Java自带的MD5加密java.security.MessageDigest;

MD5加密算法,即"Message-Digest Algorithm 5(信息-摘要算法)",它由MD2.MD3.MD4发展而来的一种单向函数算法(也就是HASH算法),它是国际著名的公钥加密算法标准RSA的第一设计者R.Rivest于上个世纪90年代初开发出来的.MD5的最大作用在于,将不同格式的大容量文件信息在用数字签名软件来签署私人密钥前"压缩"成一种保密的格式,关键之处在于——这种"压缩"是不可逆的. Java JDK已经自带了MD5的实

Java利用MessageDigest提供的MD5算法加密字符串或文件

MD5是常用的加密算法,也经常用于校验信息完整,如文件的完整性.用术语讲,MD5是一种消息摘要算法(Message Digest Algorithm).另外还有一种常用的消息摘要算法SHA1.如果想了解这些的话,可以去百度百科:MD5.SHA1.消息摘要算法. Java已经实现了MD5.SHA1算法.利用java.security.MessageDigest类就可以获取字符串和文件的MD5以及SHA1结果. 1.字符串的MD5(下面的代码有详细注释) public static String s

利用Java自带的MD5加密

package test.md5; import java.security.MessageDigest; public class MD5Util { public final static String MD5(String s) { char hexDigits[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; try { byte[] btInput = s.getBytes(); // 获得MD5摘

JAVA中简单的MD5加密类(MD5Utils)

MD5加密分析: JDK API: 获取对象的API: 加密的API: 1 package cn.utils; 2 3 import java.security.MessageDigest; 4 import java.security.NoSuchAlgorithmException; 5 6 /** 7 * @author CQY13 MD5加密工具类 8 */ 9 public class MD5Utils { 10 11 /** 12 * 获取MD5加密 13 * 14 * @param

Java 实现32位MD5加密

MD5介绍[链接] Java代码实现 1 public class Md5Util { 2 private String Md5Util(String s) { 3 try { 4 MessageDigest md = MessageDigest.getInstance("MD5"); 5 byte[] bytes = md.digest(s.getBytes("utf-8")); 6 return toHex(bytes); 7 } catch (Exceptio

java 采用MD5加密解密

MD5加密解密 package endecrypt; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** * 采用MD5加密解密 * @author tfq * @datetime 2011-10-13 */ public class MD5Util { /*** * MD5加码 生成3

java中使用MD5加密的算法

MD5,全名Message Digest Algorithm 5,中文名为消息摘要算法第五版,为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护.以下是JAVA语言中使用MD5加密的工具类. import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class MD5Util { /** * 对字符串进行MD5摘要加密,返回结果与MySQL的MD5函数一致 *

Java加密工具类(依赖:java.security.MessageDigest或org.apache.commons.codec.digest.DigestUtils)

依赖于java.security.MessageDigest,支持MD5,SHA-1,SHA-256 1 import java.security.MessageDigest; 2 import java.security.NoSuchAlgorithmException; 3 4 /** 5 * CiphertextUtil 6 * 7 * @author ysj 8 */ 9 public class CiphertextUtil { 10 public static final Strin