qiyadeng

专注于Java示例及教程
posts - 84, comments - 152, trackbacks - 0, articles - 34

用java写个MD5加密的类

Posted on 2005-09-20 21:24 qiyadeng 阅读(461) 评论(0)  编辑  收藏 所属分类: J2EE

由于一个应用,我需要一个MD5算法加密数据,我查看了网上一些资料,发现其他的语言都是要自己实现的,但是Java就很简单,因为java中的类已经处理好了,而且还可以选其他的加密算法,如SHA,下面就给一个例子

/*
 * Created on 2005-5-21
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package com.merrylin.util;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * @author Administrator
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class MD5Class {

 public static String MD5Encrypt(String inStr) {
  MessageDigest md = null;
  String outStr = null;

  try {
   md = MessageDigest.getInstance("MD5");       //可以选中其他的算法如SHA
   byte[] digest = md.digest(inStr.getBytes());       //返回的是byet[],要转化为String存储比较方便
   outStr = bytetoString(digest);
  } catch (NoSuchAlgorithmException nsae) {
   nsae.printStackTrace();
  }

  return outStr;
 }

 public static String bytetoString(byte[] digest) {
  String str = "";
  String tempStr = "";

  for (int i = 1; i < digest.length; i++) {
   tempStr = (Integer.toHexString(digest[i] & 0xff));
   if (tempStr.length() == 1) {
    str = str + "0" + tempStr;
   } else {
    str = str + tempStr;
   }
  }

  return str.toLowerCase();
 }

}

简单吧,如果你只是要应用,就可以不知道MD5的算法了,但是要想知道更多,可以参看网上的源码或是http://www.donews.net/qiyadeng/archive/2005/05/26/399340.aspx。但是注意MD5加密算法,破解还是很困难,虽然报道称山东大学的王小云教授好像是已经寻找到了破解的方法。


只有注册用户登录后才能发表评论。


网站导航: