中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

詳解JAVA中獲取文件MD5值的四種方法

小云
273
2023-08-11 12:39:45
欄目: 編程語言

在Java中,可以使用以下四種方法來獲取文件的MD5值:

  1. 使用java.security.MessageDigest類:可以使用該類的getInstance方法來獲取MD5算法的實例,并使用update方法來更新消息摘要。最后,可以使用digest方法來獲取文件的MD5值。
import java.io.FileInputStream;
import java.security.MessageDigest;
public class FileMD5 {
public static void main(String[] args) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
FileInputStream fis = new FileInputStream("path/to/file");
byte[] dataBytes = new byte[1024];
int nread = 0;
while ((nread = fis.read(dataBytes)) != -1) {
md.update(dataBytes, 0, nread);
}
byte[] mdbytes = md.digest();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < mdbytes.length; i++) {
sb.append(Integer.toString((mdbytes[i] & 0xff) + 0x100, 16).substring(1));
}
System.out.println("MD5: " + sb.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
  1. 使用Apache Commons Codec庫:該庫提供了一個DigestUtils類,可以使用它的md5Hex方法來獲取文件的MD5值。
import org.apache.commons.codec.digest.DigestUtils;
import java.io.FileInputStream;
import java.io.IOException;
public class FileMD5 {
public static void main(String[] args) {
try {
FileInputStream fis = new FileInputStream("path/to/file");
String md5 = DigestUtils.md5Hex(fis);
System.out.println("MD5: " + md5);
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
  1. 使用Java 7的java.nio.file包:可以使用Files類的get方法來獲取文件的MD5值。
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.security.MessageDigest;
public class FileMD5 {
public static void main(String[] args) {
try {
Path path = Paths.get("path/to/file");
byte[] dataBytes = Files.readAllBytes(path);
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] mdbytes = md.digest(dataBytes);
StringBuffer sb = new StringBuffer();
for (int i = 0; i < mdbytes.length; i++) {
sb.append(Integer.toString((mdbytes[i] & 0xff) + 0x100, 16).substring(1));
}
System.out.println("MD5: " + sb.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
  1. 使用第三方庫:可以使用第三方庫如Guava或Apache Commons IO來獲取文件的MD5值。

使用Guava:

import com.google.common.hash.HashCode;
import com.google.common.hash.Hashing;
import com.google.common.io.Files;
import java.io.File;
import java.io.IOException;
public class FileMD5 {
public static void main(String[] args) {
try {
File file = new File("path/to/file");
HashCode md5 = Files.hash(file, Hashing.md5());
System.out.println("MD5: " + md5.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
}

使用Apache Commons IO:

import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class FileMD5 {
public static void main(String[] args) {
try {
File file = new File("path/to/file");
String md5 = DigestUtils.md5Hex(FileUtils.readFileToByteArray(file));
System.out.println("MD5: " + md5);
} catch (IOException e) {
e.printStackTrace();
}
}
}

以上是在Java中獲取文件的MD5值的四種方法。可以根據實際情況選擇合適的方法來使用。

0
伊春市| 天等县| 柳林县| 连城县| 仪征市| 武清区| 镇雄县| 郸城县| 东城区| 邵阳县| 北川| 龙岩市| 亚东县| 辽阳市| 肥城市| 皋兰县| 赣榆县| 茌平县| 大英县| 湄潭县| 武定县| 岳池县| 吴川市| 南乐县| 海伦市| 乡宁县| 西青区| 庄浪县| 黄石市| 句容市| 甘肃省| 临沂市| 海门市| 海晏县| 建瓯市| 台北县| 南召县| 鹤庆县| 左权县| 文登市| 虞城县|