忆江南-春风

象蜗牛一样生活
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

MD5密码保护

Posted on 2012-01-12 13:18  忆江南-春风  阅读(367)  评论(0编辑  收藏  举报

  MD5叫信息-摘要算法,是一种密码的算法,它可以对任何文件产生一个唯一的MD5验证码,每个文件的MD5码就如同每个人的指纹一样,都是不同的.

在开发中,对于用户的密码不能使用明文存入到数据库中,中间要经过一定的算法,对密码进行转换成暗文,MD5是很好的一种选择,MD5是一种不可逆的字符串变换算法,我们在使用的时候,将用户密码转换成MD5值存入到数据库中,当用户登录是同样对密码进行运算得到MD5值,再将该值与数据库中得MD5值进行比较,若相同则登录成功,否则失败。

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

public class MD5 {

	public String toMd5(String input) {
		MessageDigest mDigest = null ;
		String string = null ;
		try {
			mDigest = MessageDigest.getInstance("MD5") ;
			char[] chars = input.toCharArray() ;
			byte[] byteArray = new byte[chars.length] ;
			
			for(int i = 0 ;i<chars.length ;i++){
				byteArray[i] = (byte) chars[i] ;
			}
			byte[] bytes = mDigest.digest(byteArray) ;
			
			 StringBuffer hexValue = new StringBuffer();  
			  
			  for (int i = 0; i < bytes.length; i++) {  
		   int val = ((int) bytes[i]) & 0xff;  
			  if (val < 16)  
			    hexValue.append("0");  
			   hexValue.append(Integer.toHexString(val));  
			  }  
			   string = hexValue.toString() ;
			   System.out.println(string);   //该行输出为:a1d1b2bdd513d88384c47a5f47b04079
			 return string;  

		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		}finally{
			return  string ;
		}
	}
	
	public static void main(String[] args) {
		MD5 md5 = new MD5() ;
		md5.toMd5("张学友") ;
	}
}