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-