public class MD5Check { /** * 默认的密码字符串组合,用来将字节转换成 16 进制表示的字符,apache校验下载的文件的正确性用的就是默认的这个组合 */     protected char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };     protected  MessageDigest messagedigest = null;

{         try {             messagedigest = MessageDigest.getInstance("MD5");         } catch (NoSuchAlgorithmException e) {             e.printStackTrace();         }     }     public String getFileMD5String(File file) throws IOException {         InputStream fis;         fis = new FileInputStream(file);         byte[] buffer = new byte[1024];         int numRead = 0;         while ((numRead = fis.read(buffer)) > 0) {             messagedigest.update(buffer, 0, numRead);         }         fis.close();         return bufferToHex(messagedigest.digest());     }

public String getFileMD5String(InputStream in) throws IOException {         byte[] buffer = new byte[1024];         int numRead = 0;         while ((numRead = in.read(buffer)) > 0) {             messagedigest.update(buffer, 0, numRead);         }         in.close();         return bufferToHex(messagedigest.digest());     }     private String bufferToHex(byte bytes[]) {         return bufferToHex(bytes, 0, bytes.length);     }     private String bufferToHex(byte bytes[], int m, int n) {         StringBuffer stringbuffer = new StringBuffer(2 * n);         int k = m + n;         for (int l = m; l < k; l++) {             appendHexPair(bytes[l], stringbuffer);         }         return stringbuffer.toString();     }     private void appendHexPair(byte bt, StringBuffer stringbuffer) {         char c0 = hexDigits[(bt & 0xf0) >> 4];// 取字节中高 4 位的数字转换         // 为逻辑右移,将符号位一起右移,此处未发现两种符号有何不同         char c1 = hexDigits[bt & 0xf];// 取字节中低 4 位的数字转换         stringbuffer.append(c0);         stringbuffer.append(c1);     } }

java 计算 文件 md5的更多相关文章

  1. Java计算文件MD5值(支持大文件)

    import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.securit ...

  2. Java计算文件MD5值代码

    原文:http://www.open-open.com/code/view/1424930488031 import java.io.File; import java.io.FileInputStr ...

  3. 【转】Java计算文件的hash值

    原文地址:http://blog.csdn.net/qq_25646191/article/details/78863110 如何知道一个文件是否改变了呢?当然是用比较文件hash值的方法,文件has ...

  4. javascript 计算文件MD5 浏览器 javascript读取文件内容

    原则上说,浏览器是一个不安全的环境.早期浏览器的内容是静态的,用户上网冲浪,一般就是拉取网页查看.后来,随着互联网的发展,浏览器提供了非常丰富的用户交互功能.从早期的表单交互,到现在的websocke ...

  5. 计算文件MD5

    计算文件MD5 def get_md5(file_path): md5 = None if os.path.exists(file_path): f = open(file_path, 'rb') m ...

  6. Java计算文件的SHA码和MD5码

    可参考:http://blog.csdn.net/hudashi/article/details/8394158 /** * 计算文件的MD5码 * @param file * @return */ ...

  7. Java 获取 文件md5校验码

    讯雷下载的核心思想是校验文件的md5值,两个文件若md5相同则为同一文件. 当得到用户下载某个文件的请求后它根据数据库中保留的文件md5比对出拥有此文件的url, 将用户请求挂接到此url上并仿造一个 ...

  8. 用Qt编写的计算文件MD5值的Demo

    Dialog.ui <?xml version="1.0" encoding="UTF-8"?> <ui version="4.0& ...

  9. python 计算文件md5值

    md5是一种常见不可逆加密算法,使用简单,计算速度快,在很多场景下都会用到,比如:给用户上传的文件命名,数据库中保存的用户密码,下载文件后检验文件是否正确等.下面讲解在python中如何使用md5算法 ...

随机推荐

  1. CSS3 Media Queries(响应式布局可以让你定制不同的分辨率和设备)

    点评:Media Queries这功能是非常强大的,他可以让你定制不同的分辨率和设备,并在不改变内容的情况下,让你制作的web页面在不同的分辨率和设备下都能显示正常,并且不会因此而丢失样式   Med ...

  2. IntelliJ IDEA手动配置连接MySQL数据库

    先从菜单View→Tool Windows→Database打开数据库工具窗口,如下图所示: 点击Database工具窗口左上角添加按钮"+",选择数据库类型,这里以MySQL为例 ...

  3. git设置代理

    git config --global https.proxy http://127.0.0.1:1080 git config --global https.proxy https://127.0. ...

  4. HDU3530 子序列

    题目大意:给出一串长度为n的整数串,求最长的一个连续子序列,满足该序列中最大的元素与最小的元素之差大于等于m, 并且小于等于k.n<=100000 分析:维护两个单调队列,一个递增的,维护最小值 ...

  5. memcache 永久数据被踢

    1.memcache的slab chunk 就像公交车的坐位一样,有大小之分,还有活跃的状态. 2.代码 index.php -->插入数据,注意$value的大小和重复次数,跟chunk和其数 ...

  6. TMS320C54x系列DSP的CPU与外设——第5章 数据寻址

    第5章 数据寻址 C54x DSP提供7种基本寻址方式. ■ Immediate addressing uses the instruction to encode a fixed value.    ...

  7. 黄聪:360浏览器如何使用插件实现解除网页禁用右键复制的限制(Enable Copy)

    使用Enable Copy插件即可. 插件下载:Enable-Copy_v1.15.rar

  8. Javascript之UI线程与性能优化

    在浏览器中,Javascript执行与UI更新是发生在同一个进程(浏览器UI线程)中的.UI线程的工作基于一个简单的队列系统,任务会被保存到队列中直到进程空闲时被提取出来执行.所以Javascript ...

  9. 手把手教你玩转Git分布式版本控制系统! (转载)

    目录 Git诞生历史 Git环境准备 Git安装部署 Git常用命令 Git基本操作 Git管理分支结构 Git管理标签 GitLab安装部署 GitHub托管服务 Git客户端工具 Git诞生历史 ...

  10. BIP_开发案例02_BI Publisher中复杂案例实现代码(案例)

    2014-12-27 Created By BaoXinjian