扣丁书屋
  • 文章
  • 电子书
  • 代码片段
  • 工具
  • Android系统源码

计算文件MD5

发表于 2018-11-25

文件的MD5摘要一般用来表示文件的唯一识别码。本文提供一种生成文件MD5摘要的代码。

@Nullable
public static String getFileMD5(String filePath) {
    FileInputStream in = null;
    try {
        FileInputStream in = new FileInputStream(new File(filePath));
        MessageDigest md = MessageDigest.getInstance("MD5");
        byte[] buffer = new byte[2048];
        int length;
        while ((length = in.read(buffer)) != -1) {
            md.update(buffer, 0, length);
        }
        byte[] b = md.digest();
        return byteToHexString(b);
    } catch (Exception ex) {
        Logger.e(TAG, ex);
        return null;
    } finally {
        if(in != null){
            in.Close();
        }
    }
}

在生成MD5字符串时,使用了BYTES -> HEX 的算法:

/**
* 把byte[]数组转换成十六进制字符串表示形式
* @param tmp 要转换的byte[]
* @return 十六进制字符串表示形式
*/
public static String byteToHexString(byte[] tmp) {
    char[] str = new char[(16 << 1)];
    int k = 0;
    for (int i = 0; i < 16; i++) {
        byte byte0 = tmp[i];
        str[k++] = hexDigits[byte0 >>> 4 & 0xf];
        str[k++] = hexDigits[byte0 & 0xf];
    }
    return new String(str);
}

  文章目录
扫描以下二唯码在手机上阅读

所属标签 : 

无标签

网站相关

  • 关于我们 - 理想与情怀,使命与责任
  • 文章归档 - 您的在线书库
  • 联系我们 - 新浪微博:扣丁书屋
  • 反馈建议或意见

常用链接

  • 土拨鼠 - 互联网工具小站
  • 扣丁书屋 - 汇集优秀技术文章
  • 云传送 - 简单易用的文本、文件传输工具

关于

我们收集并编写了一些优秀的技术文章并得到作者的援权发布。他们或详细的说明某一个技术点,或像百科工具书一样快速的帮您解决手上的问题。

Copyright© 2013-2016 All Rights Reserved 京ICP备13033312号