Java 计算消息摘要

概要:

消息摘要是对原始数据按照一定算法进行计算得到的计算结果,它主要用于检验原始数据是否被修改过。消息摘要和加密是不同的,从加密的结果可以得到原始数据,而从消息摘要中不可能得到原始数据。本实例演示了在简单的编程中,计算出指定字符串的消息摘要。

| |目录

技术要点

计算消息摘要的技术要点如下:

  • MessageDigest对象的使用。

  • 字符串如何传入。

  • 计算消息摘要。

  • 计算结果如何处理。

代码实现

package net.xsoftlab.baike;
import java.security.MessageDigest;
public class MD5_Message {
	public static void main(String args[]) throws Exception {
		System.out.println("计算字符串的消息摘要为:");
		String string = "车到山前必有路";
		MessageDigest md = MessageDigest.getInstance("MD5");// 生成MessageDigest对象
		md.update(string.getBytes("GBK"));// 传入需要计算的字符串
		byte b[] = md.digest();// 计算消息摘要
		String result = "";
		// 处理计算结果
		for (int i = 0; i < b.length; i++) {
			result += Integer.toHexString((0x000000ff & b[i]) | 0xffffff00)
					.substring(6);
		}
		System.out.println(result);
	}
}

程序解读

  1. 程序中的"MessageDigest md=MessageDigest.getInstance("MD5");"这条语句的主要作用是创建MessageDigest对象。MessageDigest类也是一个工厂类,其构造器是受保护的,不允许直接使用new MessageDigest()来创建对象,而必须通过其静态方法getInstance()生成MessageDigest对象。

  2. MessageDigest的update方法中,传入的参数是字节类型或字节类型数组,对于字符串,需要先使用getBytes()方法生成字符串数组。

  3. MessageDigest的digest方法起到了计算消息摘要的作用,计算的结果通过字节类型的数组返回。


评论关闭
评论 还能输入200
评论关闭
评论 还能输入200
资料加载中...
已关注 , 取消