Java计算文件的SHA码和MD5码

简介:
复制代码
 1     /**
 2      * 计算文件的MD5码
 3      * @param file
 4      * @return
 5      */
 6     public static String getMD5(File file) {
 7         FileInputStream fis = null;
 8         try {
 9             MessageDigest md = MessageDigest.getInstance("MD5");
10             fis = new FileInputStream(file);
11             byte[] buffer = new byte[8192];
12             int length = -1;
13             System.out.println("开始算");
14             while ((length = fis.read(buffer)) != -1) {
15                 md.update(buffer, 0, length);
16             }
17             System.out.println("算完了");
18             return bytesToString(md.digest());
19         } catch (IOException ex) {
20             Logger.getLogger(MD5Util.class.getName()).log(Level.SEVERE, null, ex);
21             return null;
22         } catch (NoSuchAlgorithmException ex) {
23             Logger.getLogger(MD5Util.class.getName()).log(Level.SEVERE, null, ex);
24             return null;
25         } finally {
26             try {
27                 fis.close();
28             } catch (IOException ex) {
29                 Logger.getLogger(MD5Util.class.getName()).log(Level.SEVERE, null, ex);
30             }
31         }
32     }
33 
34     /**
35      * 得到文件的SHA码,用于校验
36      * @param file
37      * @return
38      */
39     public static String getSHA(File file) {
40         FileInputStream fis = null;
41         try {
42             MessageDigest md = MessageDigest.getInstance("SHA");
43             fis = new FileInputStream(file);
44             byte[] buffer = new byte[8192];
45             int length = -1;
46             System.out.println("开始算");
47             while ((length = fis.read(buffer)) != -1) {
48                 md.update(buffer, 0, length);
49             }
50             System.out.println("算完了");
51             return bytesToString(md.digest());
52         } catch (IOException ex) {
53             Logger.getLogger(MD5Util.class.getName()).log(Level.SEVERE, null, ex);
54             return null;
55         } catch (NoSuchAlgorithmException ex) {
56             Logger.getLogger(MD5Util.class.getName()).log(Level.SEVERE, null, ex);
57             return null;
58         } finally {
59             try {
60                 fis.close();
61             } catch (IOException ex) {
62                 Logger.getLogger(MD5Util.class.getName()).log(Level.SEVERE, null, ex);
63             }
64         }
65     }
66     
复制代码

 


本文转自SummerChill博客园博客,原文链接:http://www.cnblogs.com/DreamDrive/p/5760360.html,如需转载请自行联系原作者

相关文章
|
30天前
|
Java
Java“解析时到达文件末尾”解决
在Java编程中,“解析时到达文件末尾”通常指在读取或处理文件时提前遇到了文件结尾,导致程序无法继续读取所需数据。解决方法包括:确保文件路径正确,检查文件是否完整,使用正确的文件读取模式(如文本或二进制),以及确保读取位置正确。合理设置缓冲区大小和循环条件也能避免此类问题。
|
1月前
|
Java
利用GraalVM将java文件变成exe可执行文件
这篇文章简明地介绍了如何使用GraalVM将一个简单的Java程序编译成exe可执行文件,首先通过javac命令编译Java文件生成class文件,然后使用native-image命令将class文件转换成独立的exe文件,并展示了如何运行这个exe文件。
51 0
利用GraalVM将java文件变成exe可执行文件
|
4天前
|
存储 分布式计算 Java
存算分离与计算向数据移动:深度解析与Java实现
【11月更文挑战第10天】随着大数据时代的到来,数据量的激增给传统的数据处理架构带来了巨大的挑战。传统的“存算一体”架构,即计算资源与存储资源紧密耦合,在处理海量数据时逐渐显露出其局限性。为了应对这些挑战,存算分离(Disaggregated Storage and Compute Architecture)和计算向数据移动(Compute Moves to Data)两种架构应运而生,成为大数据处理领域的热门技术。
17 2
|
8天前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
|
8天前
|
分布式计算 Java MaxCompute
ODPS MR节点跑graph连通分量计算代码报错java heap space如何解决
任务启动命令:jar -resources odps-graph-connect-family-2.0-SNAPSHOT.jar -classpath ./odps-graph-connect-family-2.0-SNAPSHOT.jar ConnectFamily 若是设置参数该如何设置
|
10天前
|
存储 Java API
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
22 4
|
12天前
|
Java 数据格式 索引
使用 Java 字节码工具检查类文件完整性的原理是什么
Java字节码工具通过解析和分析类文件的字节码,检查其结构和内容是否符合Java虚拟机规范,确保类文件的完整性和合法性,防止恶意代码或损坏的类文件影响程序运行。
|
12天前
|
Java API Maven
如何使用 Java 字节码工具检查类文件的完整性
本文介绍如何利用Java字节码工具来检测类文件的完整性和有效性,确保类文件未被篡改或损坏,适用于开发和维护阶段的代码质量控制。
|
22天前
|
Java
Java开发如何实现文件的移动,但是在移动结束后才进行读取?
【10月更文挑战第13天】Java开发如何实现文件的移动,但是在移动结束后才进行读取?
40 2
|
22天前
|
Java Apache Maven
Java将word文档转换成pdf文件的方法?
【10月更文挑战第13天】Java将word文档转换成pdf文件的方法?
105 1