首页 > 代码库 > MD5加密

MD5加密

 

java.security包中的MessageDigest类提供了计算消息摘要(即生成散列码)的方法,首先生成对象,执行其update( )方法可以将原始数据传递给该对象,然后执行其digest( )方法即可得到消息摘要。具体步骤如下:(1)生成MessageDigest对象MessageDigest m=MessageDigest.getInstance("MD5");MessageDigest类也是一个工厂类,其构造器是受保护的,不允许直接使用new MessageDigist( )来创建对象,而必须通过其静态方法getInstance( )生成MessageDigest对象。其中传入的参数指定计算消息摘要所使用的算法,常用的有"MD5","SHA"等。(2)传入需要计算的字符串m.update(x.getBytes("UTF8" ));分析:x为需要计算的字符串,update传入的参数是字节类型或字节类型数组,对于字符串,需要先使用getBytes( )方法生成字符串数组。(3)计算消息摘要byte s[ ]=m.digest( );分析:执行MessageDigest对象的digest( )方法完成计算,计算的结果通过字节类型的数组返回。(4)处理计算结果必要的话可以使用如下代码将计算结果(byte数组)转换为字符串。static String convertToHexString(byte data[]) {StringBuffer strBuffer = new StringBuffer();for (int i = 0; i < data.length; i++) {strBuffer.append(Integer.toHexString(0xff & data[i]));}return strBuffer.toString();}

 

 

 

 

 1 package com.tem1.util; 2  3 import java.security.MessageDigest; 4  5 public class MD5 { 6     public static void main(String[] args) { 7  8         try { 9             String s1 =convertToHexString(MD5.getMD5("abc"));10             String s2 =convertToHexString(MD5.getMD5("abc"));11 12             System.out.println(s1);13             System.out.println(s2);14 15         } catch (Exception e) {16 17             e.printStackTrace();18         }19 20     }21 22     /**23      * 得到消息摘要24      * 25      * */26     public static byte[] getMD5(String plainText) {27         MessageDigest m;28         byte[] ciphertext = null;29         try {30             m = MessageDigest.getInstance("MD5");31             m.update(plainText.getBytes("UTF8"));32             ciphertext = m.digest();33            34         } catch (Exception e) {35 36             e.printStackTrace();37         }38 39         return ciphertext; // 密文40 41     }42 43     /**44      * 计算摘要45      * 46      */47     public static String convertToHexString(byte data[]) {48         StringBuffer strBuffer = new StringBuffer();49         for (int i = 0; i < data.length; i++) {50             strBuffer.append(Integer.toHexString(0xff & data[i]));51         }52         return strBuffer.toString();53     }54 }

 

MD5.getMD5("abc").toString();
MD5.getMD5("abc").toString();

 

 

 String s1 =convertToHexString(MD5.getMD5("abc"));
 String s2 =convertToHexString(MD5.getMD5("abc"));



 

MD5加密