`
hz_chenwenbiao
  • 浏览: 1008047 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

MessageDigest的功能及用法(转)

阅读更多

MessageDigest 类为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法。信息摘要是安全的单向哈希函数,它接收任意大小的数据,并输出固定长度的哈希值。
MessageDigest 对象开始被初始化。该对象通过使用 update()方法处理数据。任何时候都可以调用 reset()方法重置摘要。一旦所有需要更新的数据都已经被更新了,应该调用digest() 方法之一完成哈希计算。

对于给定数量的更新数据,digest 方法只能被调用一次。在调用 digest 之后,MessageDigest 对象被重新设置成其初始状态。

1、public static MessageDigest getInstance(String algorithm)
                                 throws NoSuchAlgorithmException   返回实现指定摘要算法的 MessageDigest 对象。   algorithm - 所请求算法的名称2、public static MessageDigest getInstance(String algorithm,
                                        String provider)
                                 throws NoSuchAlgorithmException,
                                        NoSuchProviderException  返回实现指定摘要算法的 MessageDigest 对象。  algorithm - 所请求算法的名称  provider - 提供者的名称。3、public void update(byte[] input)  使用指定的 byte 数组更新摘要。 4、public byte[] digest()  通过执行诸如填充之类的最终操作完成哈希计算。在调用此方法之后,摘要被重置。5、public static boolean isEqual(byte[] digesta,
                              byte[] digestb)
比较两个摘要的相等性。做简单的字节比较。  注意:Provider可以通过 java.security.Security.getProviders()
方法获取已注册提供者列表。比较常用的有“SUN”SUN提供的常用的算法名称有:MD2                         MD5                         SHA-1                         SHA-256                         SHA-384                         SHA-512  Code举例:

import java.security.*;
public class myDigest {
  public static void main(String[] args)  {
    myDigest my=new myDigest();
    my.testDigest();
  }
  public void testDigest()
  {
   try {
     String myinfo="我的测试信息";
    //java.security.MessageDigest alg=java.security.MessageDigest.getInstance("MD5");
      java.security.MessageDigest alga=java.security.MessageDigest.getInstance("SHA-1");
      alga.update(myinfo.getBytes());
      byte[] digesta=alga.digest();
      System.out.println("本信息摘要是:"+byte2hex(digesta));
      //通过某中方式传给其他人你的信息(myinfo)和摘要(digesta) 对方可以判断是否更改或传输正常
      java.security.MessageDigest algb=java.security.MessageDigest.getInstance("SHA-1");
      algb.update(myinfo.getBytes());
      if (algb.isEqual(digesta,algb.digest())) {
         System.out.println("信息检查正常");
       }
       else
        {
          System.out.println("摘要不相同");
         }
   }
   catch (java.security.NoSuchAlgorithmException ex) {
     System.out.println("非法摘要算法");
   }
  }
  public String byte2hex(byte[] b) //二行制转字符串
    {
     String hs="";
     String stmp="";
     for (int n=0;n<b.length;n++)
      {
       stmp=(java.lang.Integer.toHexString(b[n] & 0XFF));
       if (stmp.length()==1) hs=hs+"0"+stmp;
       else hs=hs+stmp;
       if (n<b.length-1)  hs=hs+":";
      }
     return hs.toUpperCase();
    }
}

 

 

其实就是将信息加密,然后传输后,再进行检验是否是原来的信息,看会不会有人改了。

分享到:
评论

相关推荐

    Java MessageDigest:安全哈希函数及用法解析与示例

    Java 提供了 `MessageDigest` 类来实现加密哈希函数的功能,本文将详细介绍 `MessageDigest` 的工作原理及其使用方法,并通过一个使用 SHA-256 算法计算哈希值的例子来加深理解。 #### 二、Java MessageDigest 概述...

    Java MessageDigest 的 getInstance 方法:简介、详解、实例代码和运行结果

    总之,`MessageDigest.getInstance`方法是Java安全编程中不可或缺的一部分,它提供了计算散列值的功能,从而在各种场景下保护数据的安全性和完整性。理解并正确使用这个方法对于开发安全的应用至关重要。

    Java中MessageDigest来实现数据加密的方法

    1. 获取MessageDigest对象:使用getInstance方法获取MessageDigest对象,例如获取MD5算法的对象为MessageDigest.getInstance("md5")。 2. 执行加密操作:使用digest方法对数据进行加密,例如对字符串"123123"进行MD...

    MessageDigestTest

    总的来说,`MessageDigestTest`是一个用于验证和演示`MessageDigest`类功能的示例程序,它涵盖了消息摘要的基本用法,包括选择哈希算法、处理数据和显示结果。这个测试对于理解和使用Java中的加密技术是非常有价值的...

    MD5_MessageDigest_java_md5_消息摘要_

    上述代码首先创建了一个`MessageDigest`实例,然后使用`update`方法处理数据,最后调用`digest`方法计算MD5摘要。计算出的摘要是一组字节,通常会将其转换为16进制字符串以便于人类阅读。 MD5的主要用途是数据完整...

    java加密枝术.doc

    Java加密技术主要关注的是数据的安全性和隐私保护,其中`java.security`包中的`MessageDigest`类是用于实现消息摘要功能的关键。消息摘要是一种单向函数,它将任意长度的输入(也称为预映射或消息)转换为固定长度的...

    SHA-256 java加密代码

    ava.security.MessageDigest...MessageDigest 对象通过使用 update 方法处理数据。任何时候都可以调用 reset 方法重置摘要。一旦所有需要更新的数据都已经被更新了,应该调用 digest 方法之一完成哈希计算并返回结果。

    使用JAVA代码实现MD5加密

    * 功能:对一个字符串进行md5加密 */ public class EncryptUtil { /** * 对字符串加密的方法 * @param str * @return */ public static String toMessageDigest(String str) { try { MessageDigest...

    MD5加密jar包及案例

    1. **MD5加密jar包**:这些预编译的库可能包含了实现MD5加密功能的Java类和方法,比如`java.security.MessageDigest`类的使用,它可以用来创建MD5实例并进行哈希运算。使用这些jar包,开发者可以直接调用API进行MD5...

    jar包MD5加密包含用法

    使用这个库可以方便地在Java程序中集成MD5功能,而无需手动编写复杂的哈希计算代码。通常,这个库会包含`java.security.MessageDigest`类的封装,该类是Java标准库中用于各种消息摘要算法的接口,包括MD5。 使用MD5...

    Keccak和SHA-3哈希函数的Java实现。.zip

    例如,可以使用`org.bouncycastle.jce.provider.BouncyCastleProvider`作为安全提供者,并通过`MessageDigest.getInstance()`方法获取SHA-3的实例,然后将数据传递给`digest()`或`update()`方法。 以下是一个简单的...

    Java-MD5加密

    - **初始化MessageDigest对象**:通过调用`MessageDigest.getInstance("MD5")`方法获取一个MD5算法的MessageDigest对象。 - **更新摘要**:通过调用`digest.update(data.getBytes())`方法,将原始数据转换为字节数组...

    JAVA写的MD5加密

    - 使用`getInstance()`方法获取MD5实例:`MessageDigest md = MessageDigest.getInstance("MD5");` - `update()`方法用于向哈希计算添加数据,可以多次调用处理大量数据:`md.update(input.getBytes());` - `...

    md5_new.rar_MD5 JAVA_java md5_md5_加密算法

    1. **导入必要的库**:首先,你需要导入`java.security.MessageDigest`和`java.math.BigInteger`库,以便使用MD5功能和处理大整数。 ```java import java.security.MessageDigest; import java.math.BigInteger; ...

    java的MD5算法

    ### Java中的MD5算法 #### 一、简介 在计算机科学领域中,MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,...通过上述内容的学习,可以帮助开发者更好地掌握MD5算法在Java中的使用方法及其背后的原理。

    java密码加密

    1. **创建MessageDigest实例**:首先需要通过`MessageDigest.getInstance("MD5")`方法创建一个`MessageDigest`对象,指定使用MD5算法。 2. **计算摘要**:然后通过调用`digest()`方法计算输入字符串的摘要。在计算...

    java MD5验证

    2. **更新数据**:使用`MessageDigest.update(byte[], int, int)`方法向MessageDigest对象添加数据,该方法接受一个字节数组以及起始位置和长度作为参数。 3. **生成哈希值**:调用`MessageDigest.digest()`方法计算...

    获取哈希及获取哈希算法标识demo-java

    这个“获取哈希及获取哈希算法标识demo-java”项目就是针对这一主题的实例代码,帮助开发者理解和使用Java中的哈希计算功能。 标题“获取哈希及获取哈希算法标识demo-java”表明这个示例主要涉及两个关键知识点:一...

    java中文件的MD5和SHA-1的使用

    在计算文件的 MD5 值时,需要使用 MessageDigest 类的 getInstance 静态方法来获取 MessageDigest 对象,并将参数设置为 "MD5"。然后,使用 FileInputStream 读取文件的内容,并将其传递给 MessageDigest 对象的 ...

    java加密枝术

    本文将详细介绍如何使用Java的安全包`java.security`中的`MessageDigest`类来实现数据加密,主要关注MD5算法的应用。 #### 二、`MessageDigest`类介绍 `MessageDigest`类位于`java.security`包中,它提供了一种...

Global site tag (gtag.js) - Google Analytics