当前位置: 代码迷 >> Web前端 >> java保险5
  详细解决方案

java保险5

热度:218   发布时间:2012-09-07 10:38:15.0
java安全5
package com.ngsn.security;


import java.security.MessageDigest;

/**
 * 数字摘要应用
 * MD5 或 SHA 算法 加密
 * @author John.Yao
 */
public class SecretKeyTest4 {
	
	public static void main(String[] args) throws Exception{
		
		String str = md5("abcd");
		System.out.println("str--->"+str.toUpperCase());
	}
	
	public static String md5(String str) throws Exception{
		String md5=null;
		// MessageDigest 类为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法
		MessageDigest md = MessageDigest.getInstance("MD5");
		md.update(str.getBytes());
		byte[] result = md.digest();
		System.out.println("result length--->"+result.length);
		md5 = toHex(result);
		System.out.println("md5--->"+md5);
		return md5;
	}
	/**
	 * 将二进制的字节数组转换成16进制的字符串
	 * @param buf
	 * @return
	 */
	public static String toHex(byte[] buf){
		StringBuilder sb = new StringBuilder();
		
		for(int i=0;i<buf.length;i++){
			//高位
			int high = ((buf[i]>>4) & 0x0f);
			//低位
			int lo = buf[i] & 0x0f;
			sb.append(high > 9 ? (char)((high-10)+'a'):(char)(high+'0'));
			sb.append(lo > 9 ? (char)((lo-10)+'a'):(char)(lo+'0'));
		}
		return sb.toString();
	}
}



















  相关解决方案