文件md5的生成方法
来源:互联网 发布:pc6下载站 mac 编辑:程序博客网 时间:2024/06/05 18:42
最近要弄一下Java读取文件MD5,注意这里是小文件,网上找了一下,有两种解决方案,一种是用MessageDigest来实现,另种是用org.apache.commons.codec.digest来实现,代码如下:
- package cdm;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.math.BigInteger;
- import java.nio.MappedByteBuffer;
- import java.nio.channels.FileChannel;
- import java.security.MessageDigest;
- import org.apache.commons.codec.digest.*;
- import org.apache.commons.io.IOUtils;
- public class testMD5 {
- public static String getMd5ByFile(File file) throws FileNotFoundException {
- String value = null;
- FileInputStream in = new FileInputStream(file);
- try {
- MappedByteBuffer byteBuffer = in.getChannel().map(FileChannel.MapMode.READ_ONLY, 0, file.length());
- MessageDigest md5 = MessageDigest.getInstance("MD5");
- md5.update(byteBuffer);
- BigInteger bi = new BigInteger(1, md5.digest());
- value = bi.toString(16);
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- if(null != in) {
- try {
- in.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- return value;
- }
- public static void main(String[] args) throws IOException {
- String path="E:\\commons-codec-1.9-bin.zip";
- String v = getMd5ByFile(new File(path));
- System.out.println("MD5:"+v.toUpperCase());
- FileInputStream fis= new FileInputStream(path);
- String md5 = DigestUtils.md5Hex(IOUtils.toByteArray(fis));
- IOUtils.closeQuietly(fis);
- System.out.println("MD5:"+md5);
- //System.out.println("MD5:"+DigestUtils.md5Hex("WANGQIUYUN"));
- }
- }
运行:
结果在官网提供的MD5一致。
附commons-codec-1.9.jar下载地址:http://commons.apache.org/proper/commons-codec/download_codec.cgi
如果要处理过G的文件,请参照:http://www.cnblogs.com/yaowukonga/p/3523668.html
说明一下,文件的md5z值是根据文件的内容来的,只要内容没有变,md5就一样。
第一种方法亲测,可用!
0 0
- 文件md5的生成方法
- ngx.md5生成文件的md5值
- 生成MD5代码的方法
- 数据库生成 MD5的方法
- Python生成MD5的方法
- 获取文件Md5的方法
- 用Python生成文件的MD5校验码
- HashMyFiles生成文件的SHA和MD5
- 生成文件的MD5、SHA、SHA256
- java生成MD5代码的方法
- QT中生成字符串md5的方法
- QT中生成字符串md5的方法
- QT中生成字符串md5的方法
- python两种生成md5的方法
- QT中生成字符串md5的方法
- 文件生成MD5 收藏
- MD5 生成文件校验
- c++ 生成文件MD5
- C++基础之技巧和小知识(代码中的积累)
- iOS常用第三方类库
- 利用Mysql+ PaceMaker+NFS构建MySQL高可用
- JSF中文输入乱码问题解决方法
- jquery 获取iframe当中的元素
- 文件md5的生成方法
- Construct Binary Tree from Preorder and Inorder Traversal Java
- 利用MySQLcluster构建MySQL高可用
- Cordova CLI源码分析(一)——简介 分类: node phonegap
- python多行匹配
- 怎么解决函数的参数值、类型或数目无效?
- NS2事件调度机制
- WRQ只是被放四天假的吴静钰这TEYE
- 2.0~2.6 重力,碰撞,弹跳等 Creating Dynamic and Interactive User Interfaces