📜  Java中的 DigestOutputStream.setMessageDigest() 方法及示例

📅  最后修改于: 2022-05-13 01:55:50.428000             🧑  作者: Mango

Java中的 DigestOutputStream.setMessageDigest() 方法及示例

Java.security.DigestOutputStream类的setMessageDigest()方法用于将指定的 MessageDigest 分配给 DigestOutputStream 对象。

句法:

public void setMessageDigest(MessageDigest digest)

返回值:此方法没有任何返回值。
注意:本文中的所有程序都不会在在线 IDE 上运行,因为不存在“名称”文件。您可以在系统上的Java编译器上检查此代码。要检查此代码,请在您的系统上创建一个文件“名称”。
以下是说明setMessageDigest()方法的示例:
示例 1:

Java
// Java program to demonstrate
// setMessageDigest() method
 
import java.security.*;
import java.util.*;
import java.io.*;
 
public class GFG {
    public static void main(String[] argv)
    {
        try {
 
            // creating the object of MessageDigest
            // and getting instance
            // By using getInstance() method
            MessageDigest sr
                = MessageDigest.getInstance("MD5");
 
            // creating and initializing
            // object of OutputStream
            OutputStream is
                = new FileOutputStream(
                    "f:/java/name.txt");
 
            // creating and initializing
            // object of DigestOutputStream
            DigestOutputStream di
                = new DigestOutputStream(is, sr);
 
            // display the result
            System.out.println("MessageDigest before assigning : "
                               + di.getMessageDigest());
 
            // assigning the MessageDigest to this stream
            // using setMessageDigest() method
            di.setMessageDigest(
                MessageDigest.getInstance("SHA-1"));
 
            // display the result
            System.out.println("MessageDigest after assigning : "
                               + di.getMessageDigest());
        }
 
        catch (NoSuchAlgorithmException e) {
 
            System.out.println("Exception thrown : " + e);
        }
        catch (NullPointerException e) {
 
            System.out.println("Exception thrown : " + e);
        }
        catch (FileNotFoundException e) {
 
            System.out.println("Exception thrown : " + e);
        }
    }
}


Java
// Java program to demonstrate
// setMessageDigest() method
 
import java.security.*;
import java.util.*;
import java.io.*;
 
public class GFG {
    public static void main(String[] argv)
    {
        try {
 
            // creating the object of MessageDigest
            // and getting instance
            // By using getInstance() method
            MessageDigest sr
                = MessageDigest.getInstance("SHA-1");
 
            // creating and initializing
            // object of OutputStream
            OutputStream is
                = new FileOutputStream(
                    "f:/java/name.txt");
 
            // creating and initializing
            // object of DigestOutputStream
            DigestOutputStream di
                = new DigestOutputStream(is, sr);
 
            // display the result
            System.out.println(
                "MessageDigest before assigning : "
                + di.getMessageDigest());
 
            // assigning the MessageDigest to this stream
            // using setMessageDigest() method
            di.setMessageDigest(
                MessageDigest.getInstance("MD5"));
 
            // display the result
            System.out.println("MessageDigest after assigning : "
                               + di.getMessageDigest());
        }
 
        catch (NoSuchAlgorithmException e) {
 
            System.out.println("Exception thrown : " + e);
        }
        catch (NullPointerException e) {
 
            System.out.println("Exception thrown : " + e);
        }
        catch (FileNotFoundException e) {
 
            System.out.println("Exception thrown : " + e);
        }
    }
}


输出:
MessageDigest before assigning : MD5 Message Digest from SUN, 

MessageDigest after assigning : SHA-1 Message Digest from SUN, 

示例 2:

Java

// Java program to demonstrate
// setMessageDigest() method
 
import java.security.*;
import java.util.*;
import java.io.*;
 
public class GFG {
    public static void main(String[] argv)
    {
        try {
 
            // creating the object of MessageDigest
            // and getting instance
            // By using getInstance() method
            MessageDigest sr
                = MessageDigest.getInstance("SHA-1");
 
            // creating and initializing
            // object of OutputStream
            OutputStream is
                = new FileOutputStream(
                    "f:/java/name.txt");
 
            // creating and initializing
            // object of DigestOutputStream
            DigestOutputStream di
                = new DigestOutputStream(is, sr);
 
            // display the result
            System.out.println(
                "MessageDigest before assigning : "
                + di.getMessageDigest());
 
            // assigning the MessageDigest to this stream
            // using setMessageDigest() method
            di.setMessageDigest(
                MessageDigest.getInstance("MD5"));
 
            // display the result
            System.out.println("MessageDigest after assigning : "
                               + di.getMessageDigest());
        }
 
        catch (NoSuchAlgorithmException e) {
 
            System.out.println("Exception thrown : " + e);
        }
        catch (NullPointerException e) {
 
            System.out.println("Exception thrown : " + e);
        }
        catch (FileNotFoundException e) {
 
            System.out.println("Exception thrown : " + e);
        }
    }
}
输出:
MessageDigest before assigning : SHA-1 Message Digest from SUN, 

MessageDigest after assigning : MD5 Message Digest from SUN,  

参考: https://docs.oracle.com/javase/9/docs/api/ Java/security/DigestOutputStream.html#setMessageDigest-java.security.MessageDigest-