标签:style blog color io os 使用 ar java for
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"));
标签:style blog color io os 使用 ar java for
原文地址:http://www.cnblogs.com/thrive/p/4018872.html