📌  相关文章
📜  Java中的 MessageDigest isEqual() 方法及示例

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

Java中的 MessageDigest isEqual() 方法及示例

Java.security.MessageDigest类的isEqual()方法用于测试两个消息摘要是否相等。

句法:

public static boolean
  isEqual(byte[] digesta, byte[] digestb)

参数:此方法采用 2 字节数组进行比较。
返回值:此方法提供布尔值,如果两个摘要相等则为 true,否则为 false。

下面是说明 isEqual() 方法的示例:
示例 1:对于相等的摘要值

Java
// Java program to demonstrate
// isEqual() method
 
import java.security.*;
import java.util.*;
 
public class GFG1 {
    public static void main(String[] argv)
    {
        try {
 
            // creating object of MessageDigest
            MessageDigest msd1
                = MessageDigest.getInstance("SHA-256");
 
            // creating object of MessageDigest
            MessageDigest msd2
                = MessageDigest.getInstance("SHA-256");
 
            // getting provider used in object msd
            // using getAlgorithm() method
            boolean status
                = MessageDigest
                      .isEqual(msd1.digest(),
                               msd2.digest());
 
            // check the condition
            if (status)
                System.out.println("msd1 is equals to msd2");
            else
                System.out.println("msd1 is not equals to msd2");
        }
 
        catch (NoSuchAlgorithmException e) {
 
            System.out.println("Exception thrown : " + e);
        }
        catch (ProviderException e) {
 
            System.out.println("Exception thrown : " + e);
        }
    }
}


Java
// Java program to demonstrate
// isEqual() method
 
import java.security.*;
import java.util.*;
 
public class GFG1 {
    public static void main(String[] argv)
    {
        try {
 
            // creating object of MessageDigest
            MessageDigest msd1
                = MessageDigest.getInstance("MD5");
 
            // creating object of MessageDigest
            MessageDigest msd2
                = MessageDigest.getInstance("SHA-256");
 
            // getting provider used in object msd
            // using getAlgorithm() method
            boolean status
                = MessageDigest.isEqual(msd1.digest(),
                                        msd2.digest());
 
            // check the condition
            if (status)
                System.out.println("msd1 is equals to msd2");
            else
                System.out.println("msd1 is not equals to msd2");
        }
 
        catch (NoSuchAlgorithmException e) {
 
            System.out.println("Exception thrown : " + e);
        }
        catch (ProviderException e) {
 
            System.out.println("Exception thrown : " + e);
        }
    }
}


输出:
msd1 is equals to msd2

示例 2:对于不相等的摘要值

Java

// Java program to demonstrate
// isEqual() method
 
import java.security.*;
import java.util.*;
 
public class GFG1 {
    public static void main(String[] argv)
    {
        try {
 
            // creating object of MessageDigest
            MessageDigest msd1
                = MessageDigest.getInstance("MD5");
 
            // creating object of MessageDigest
            MessageDigest msd2
                = MessageDigest.getInstance("SHA-256");
 
            // getting provider used in object msd
            // using getAlgorithm() method
            boolean status
                = MessageDigest.isEqual(msd1.digest(),
                                        msd2.digest());
 
            // check the condition
            if (status)
                System.out.println("msd1 is equals to msd2");
            else
                System.out.println("msd1 is not equals to msd2");
        }
 
        catch (NoSuchAlgorithmException e) {
 
            System.out.println("Exception thrown : " + e);
        }
        catch (ProviderException e) {
 
            System.out.println("Exception thrown : " + e);
        }
    }
}
输出:
msd1 is not equals to msd2

参考: https://docs.oracle.com/javase/9/docs/api/ Java/security/MessageDigest.html#isEqual-byte:A-byte:A-