java calculate md5sum

在Java中计算MD5校验和,可以使用Java自带的MessageDigest类来实现。

以下是一个计算字符串的MD5校验和的示例代码:

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5Demo {
    public static void main(String[] args) {
        String input = "Hello World!";
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(input.getBytes());
            byte[] digest = md.digest();
            String md5sum = bytesToHex(digest);
            System.out.println("MD5 checksum of \"" + input + "\" is: " + md5sum);
        } catch (NoSuchAlgorithmException e) {
            System.err.println("Error: " + e.getMessage());
    private static final char[] HEX_ARRAY = "0123456789ABCDEF".toCharArray();
    public static String bytesToHex(byte[] bytes) {
        char[] hexChars = new char[bytes.length * 2];
        for (int i = 0; i < bytes.length; i++) {
            int v = bytes[i] & 0xFF;
            hexChars[i * 2] = HEX_ARRAY[v >>> 4];
            hexChars[i * 2 + 1] = HEX_ARRAY[v & 0x0F];
        return new String(hexChars);

这段代码首先定义了一个输入字符串input,然后使用MessageDigest.getInstance("MD5")方法获取MD5算法的实例对象。接下来,通过调用md.update(input.getBytes())方法将输入字符串的字节数组更新到MD5对象中。然后调用md.digest()方法,该方法返回计算出的MD5校验和的字节数组。最后,通过调用bytesToHex()方法将字节数组转换为十六进制字符串,得到最终的MD5校验和。

需要注意的是,在使用MessageDigest类计算MD5校验和时,如果输入的是一个文件,可以通过多次调用md.update()方法来逐步读取文件内容并计算校验和。

  •