public class TestMD5 {
public static final String HASH_TYPE_MD5 = "MD5";
public static final String HASH_TYPE_SHA1 = "SHA-1";
public static final String HASH_TYPE_SHA256 = "SHA-256";
public static final String HASH_TYPE_SHA384 = "SHA-384";
public static final String HASH_TYPE_SHA512 = "SHA-512";
public static String getMd5ByFile(File file) throws FileNotFoundException {
return getMd5ByFile(file, HASH_TYPE_MD5);
}
public static String getMd5ByFile(File file, String hashType) throws FileNotFoundException {
String value = null;
FileInputStream fis = new FileInputStream(file);
try {
MappedByteBuffer byteBuffer = fis.getChannel().map(FileChannel.MapMode.READ_ONLY, 0, file.length());
MessageDigest digest = MessageDigest.getInstance(hashType);
digest.update(byteBuffer);
BigInteger bigInteger = new BigInteger(1, digest.digest());
value = bigInteger.toString(16);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != fis) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return value;
}
public static void main(String[] args) throws IOException {
String path = "E:\\md5-test.zip";
// apache commons解决方案
long s1 = System.currentTimeMillis();
String v = getMd5ByFile(new File(path));
System.out.println("MD5: " + v.toUpperCase());
long s2 = System.currentTimeMillis();
System.out.println(s2 - s1);
// jdk解决方案
long s3 = System.currentTimeMillis();
FileInputStream fis = new FileInputStream(path);
String md5 = DigestUtils.md5Hex(IOUtils.toByteArray(fis));
IOUtils.closeQuietly(fis);
System.out.println("MD5:" + md5.toUpperCase());
long s4 = System.currentTimeMillis();
System.out.println(s4 - s3);
// System.out.println("MD5:"+DigestUtils.md5Hex("JAVA"));
}
}
本文作者为新逸网络,转载请注明。
哈哈[aru_3]
@Ha啊哈