消息摘要java.security.MessageDigest

时间:2021-11-30 11:43:00

这是一种与消息认证码结合使用以确保消息完整性的技术。主要使用单向散列函数算法,可用于检验消息的完整性,和通过散列密码直接以文本形式保存等,目前广泛使用的算法有MD4、MD5、SHA-1,jdk1.5对上面都提供了支持,在java中进行消息摘要很简单, java.security.MessageDigest提供了一个简易的操作方法:

/** *MessageDigestExample.java *Copyright 2005-2-16 */ import java.security.MessageDigest; /** *单一的消息摘要算法,不使用密码.可以用来对明文消息(如:密码)隐藏保存 */ public class MessageDigestExample{  public static void main(String[] args) throws Exception{   if(args.length!=1){    System.err.println("Usage:java MessageDigestExample text");    System.exit(1);   }
  byte[] plainText=args[0].getBytes("UTF8");
  //使用getInstance("算法")来获得消息摘要,这里使用SHA-1的160位算法   MessageDigest messageDigest=MessageDigest.getInstance("SHA-1");
  System.out.println("\n" messageDigest.getProvider().getInfo());   //开始使用算法   messageDigest.update(plainText);   System.out.println("\nDigest:");   //输出算法运算结果   System.out.println(new String(messageDigest.digest(),"UTF8"));  } }

  还可以通过消息认证码来进行加密实现,javax.crypto.Mac提供了一个解决方案,有兴趣者可以参考相关API文档,本文只是简单介绍什么是摘要算法。