如何使用MD5对字符串(数字+字母)进行加密?

package cn.kgc.pojo;

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

public class EncodeUtil {
	
		public String MD5Util(String data){
			//获得java提供加密类的一个实例
			MessageDigest md5=null;
			try {
				 md5=MessageDigest.getInstance("MD5");
			} catch (NoSuchAlgorithmException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			//将string 转换成byte[] 
			char[] chars=data.toCharArray();
			//utf-8字符编码规则:一个数字、一个字母都是占一个字节
			byte[] bytes=new byte[chars.length];
			for(int i=0;i<chars.length;i++){
				bytes[i]=(byte)chars[i];
			}
			
			//获取MD5计算后的值
			byte[] md5byte=md5.digest(bytes);
			//将获取到的byte值转回string
			StringBuffer stringBuffer=new StringBuffer();
			for(int i=0;i<md5byte.length;i++){
				//为了保证转换不会出错(更精确)    0xff 缩写     
				int val=((int)md5byte[i]) & 0xff;
				if(val<16){
					stringBuffer.append("0");
				}else{
					stringBuffer.append(Integer.toHexString(val));
				}
			}
			return stringBuffer.toString();
		}
}
public static void main(String[] args) {
		EncodeUtil util=new EncodeUtil();
		String s=new String("123abc");
		System.out.println("原始"+s);
		System.out.println("MD5后:"+util.MD5Util(s));
	}


猜你喜欢

转载自blog.csdn.net/java_stud/article/details/81034867