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. C# winform 右下角弹出窗口结果

    using System.Runtime.InteropServices; [DllImport("user32")] private static extern bool Ani ...

  2. [Hibernate] - Select/Update/Delete/Insert

    Java bean: package com.my.bean; import java.util.Date; public class WorkPack { private String uWorkP ...

  3. c#.net 访问SQL SERVER 时提示:尝试读取或写入受保护的内存。这通常指示其他内存已损坏

    解决方法: 管理员身份运行 cmd ->  输入 netsh winsock reset 然后重启电脑. 引用 :http://blog.csdn.net/laijieyao/article/d ...

  4. No Suitable Driver Found For Jdbc_我的解决方法

    转载自:http://www.blogjava.net/w2gavin/articles/217864.html      今天出现编码出现了No suitable driver found for ...

  5. 在Visual Studio 2010/2012中 找不到创建WebService的项目模板

    参考文章: http://blog.sina.com.cn/s/blog_6d545999010152wb.html 在 Visual Studio 2010 或者2012的新建 Web 应用程序或者 ...

  6. PLSQL_PLSQL读和写XML文件方式(案例)

    2012-05-01 Created By BaoXinjian

  7. semanage: 未找到命令

    [root@hn ~]# semanage port -l|grep ssh-bash: semanage: 未找到命令 yum -y install policycoreutils-python

  8. 转_ _android开发中如何结束所有的activity

    每一个activity都有自己的生命周期,被打开了最终就要被关闭. 四种结束当前的activity方法 Java代码:   //关闭当前activity方法一 finish(); //关闭当前界面方法 ...

  9. CSS控制鼠标形状

    巧合要用到鼠标样式效果,就顺便整理了下十五种CSS鼠标样式.CSS鼠标样式语法如下:任意标签中插入 style="cursor:*"例 子:<span style=" ...

  10. UEditor使用有感(黄色)

    UEditor 介绍 UEditor 是由百度「FEX前端研发团队」开发的所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码. 1 入门部署 ...