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啊哈