? ? private final char[] hexCode = "0123456789ABCDEF".toCharArray();
?
? ? public String toHexString(byte[] data) {
? ? ? ? StringBuilder r = new StringBuilder(data.length * 2);
? ? ? ? for (byte b : data) {
? ? ? ? ? ? r.append(hexCode[(b >> 4) & 0xF]);
? ? ? ? ? ? r.append(hexCode[(b & 0xF)]);
? ? ? ? }
? ? ? ? return r.toString();
? ? }
?
? ? public String getFileMD5(File file) {
? ? ? ? if (!file.exists() || !file.isFile()) {
? ? ? ? ? ? return null;
? ? ? ? }
? ? ? ? MessageDigest digest = null;
? ? ? ? FileInputStream in = null;
? ? ? ? byte buffer[] = new byte[1024];
? ? ? ? int len;
? ? ? ? try {
? ? ? ? ? ? digest = MessageDigest.getInstance("MD5");
? ? ? ? ? ? in = new FileInputStream(file);
? ? ? ? ? ? while ((len = in.read(buffer, 0, 1024)) > 0) {
? ? ? ? ? ? ? ? digest.update(buffer, 0, len);
? ? ? ? ? ? }
? ? ? ? ? ? in.close();
? ? ? ? } catch (Exception e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? return null;
? ? ? ? }
? ? ? ? return toHexString(digest.digest());
? ? }
?
? ? public String getFileMD5(String filepath) {
? ? ? ? File file = new File(filepath);
? ? ? ? return getFileMD5(file);
? ? }