`
limengchengg
  • 浏览: 5433 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

md5加密

阅读更多
package com.horizon.util;

import java.io.IOException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * 将字符串进行md5加密
 * @author LIMENGCHENG292
 *
 */
public class MD5 {
	/**
	 * 
	 * @param str 需要被加密的String
	 * @return 加密之后的String   (32个16进制数 128位) 
	 * 			例如:A1234567890B1234567890C123456789
	 * @throws NoSuchAlgorithmException
	 */
	private static final String DEFAULTMD5String = "00000000000000000000000000000000";
	public static String MD5Encoder(String str) 
			throws NoSuchAlgorithmException {
		MessageDigest md5 = MessageDigest.getInstance("MD5");
		if (str == null) {
			// 如果需要加密的String是null,返回默认的DEFAULTMD5String
			return DEFAULTMD5String;
		}
		md5.update(str.getBytes());
		byte[] b = md5.digest();
		int i = 0;
		StringBuffer buf = new StringBuffer("");
		for (int offset=0; offset<b.length; offset++) {
			i = b[offset];
			if (i<0) {
				i = i + 256;
			}				
			if (i<16) {
				buf.append("0");
			}
			buf.append(Integer.toHexString(i));
		}
		return buf.toString();
	}
	
	public static String MD5Encoder(Object obj) 
			throws NoSuchAlgorithmException, IOException {
		MessageDigest md5 = MessageDigest.getInstance("MD5");
		if (obj == null) {
			// 如果需要加密的Object是null,返回默认的DEFAULTMD5String
			return DEFAULTMD5String;
		}
		md5.update(DataUtil.objToBytes(obj));
		byte[] b = md5.digest();
		int i = 0;
		StringBuffer buf = new StringBuffer("");
		for (int offset=0; offset<b.length; offset++) {
			i = b[offset];
			if (i<0) {
				i = i + 256;
			}				
			if (i<16) {
				buf.append("0");
			}
			buf.append(Integer.toHexString(i));
		}
		return buf.toString();
	}
}


第二个方法中的参数obj,必须是可序列化的,否则会throw一个NotSerializableException
上类中用到的DataUtil类,代码如下
package com.horizon.util;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class DataUtil {

	public static byte[] objToBytes(Object obj) throws IOException {
		if (obj == null) {
			return null;
		}
		ByteArrayOutputStream bo = null;
		ObjectOutputStream oo = null;
		try {
			bo = new ByteArrayOutputStream();
			oo = new ObjectOutputStream(bo);
			oo.writeObject(obj);
			oo.flush();
			oo.close();
			return bo.toByteArray();
		} catch (IOException e) {
			throw e;
		} finally {
			if (bo != null) {
				bo.close();
				bo = null;
			}
		}
	}
}


分享到:
评论

相关推荐

    MD5加密MD5加密MD5加密

    MD5加密MD5加密MD5加密MD5加密MD5加密

    Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法

    Kettle中使用JavaScript调用jar包对文件内容进行MD5加密.本文主要知识点: JavaScript调用jar包对文件内容进行MD5加密,返回加密md5值 Kettle实现对文件内容的加密,返回加密md5值 2.使用方法 1)下载jar包 ...

    PB9.0调用MD5加密示例,md5加密方法过程,PowerBuilder

    pb9.0调用md5加密

    MD5加密MD5加密

    MD5加密MD5加密MD5加密MD5加密MD5加密MD5加密MD5加密MD5加密MD5加密MD5加密

    Md5加密jar包

    两种MD5加密jar包,两种MD5加密jar包,两种MD5加密jar包,两种MD5加密jar包,两种MD5加密jar包,两种MD5加密jar包,两种MD5加密jar包,

    md5加密md5加密

    md5加密md5加密md5加密md5加密md5加密md5加密

    WPS内实现MD5加密

    在WPS内通过JS宏实现MD5加密

    支持utf-8的md5加密,js md5加密js代码

    搞小程序开发,请求接口的加密部分用到md5,百度一大堆垃圾的js md5加密,每一个都正确,都是不支持中文的,爬墙才找到这个,希望大家别入坑...js md5加密,md5支持utf-8加密,javascript md5加密,最好用js md5加密。

    MD5编码、MD5加密解密demo

    MD5编码、MD5加密解密demo代码,详看博客 对字符串进行MD5编码及MD5加密和解密

    Java实现MD5加密解密

    Java实现MD5加密以及解密,附带测试类,具体见代码。 Java实现MD5加密以及解密,附带测试类,具体见代码。 Java实现MD5加密以及解密,附带测试类,具体见代码。 Java实现MD5加密以及解密,附带测试类,具体见代码。

    批量MD5加密工具

    批量MD5加密工具,很不错。

    VBA MD5加密算法实现

    VBA MD5加密 算法

    MD5 加密算法 C++实现源码

    C++实现 MD5加密算法 可直接调用 hash1加密算法 MD5加密算法 MD5加密算法

    MD5 加密工具源码

    MD5加密单独封装一个类,可以生成16位大写(默认)或小写的(需修改源码)的密钥串。与在线MD5加密结果一致。VS2005工程。

    md5加密算法 C语言(经过测试验证完整版)

    md5加密算法 C语言(经过测试验证完整版) 经过调试验证,与工具结果一致 MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash...

    md5加密算法源码,c语言源码

    md5加密算法源码: 一 \md5加密是对字符或密码进行的16位或32位等加密方式! 一般在普通MDB数据库经常用到,比如论坛数据库等.有用! 二 \加密解密并不矛盾,比如银行系统的128位加密现在谁可以轻易破的了呢? 虽然md5...

    MD5加密器.exe

    MD5加密器,用vb编写的,已生产了exe文件。 包括16位加密和32位加密两种加密方式

    md5加密算法

    密码学md5加密技术..........................................................................................................................................................................................

    VB的md5加密VB的md5加密

    VB的md5加密VB的md5加密VB的md5加密VB的md5加密VB的md5加密VB的md5加密VB的md5加密VB的md5加密VB的md5加密VB的md5加密VB的md5加密VB的md5加密VB的md5加密VB的md5加密VB的md5加密VB的md5加密

    C# MD5加密 实例源码(加密解密)

    C# MD5加密 实例源码(加密解密)

Global site tag (gtag.js) - Google Analytics