import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class MD5FileUtil { private static final Logger logger = LoggerFactory .getLogger(MD5FileUtil.class); protected static char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; protected static MessageDigest messagedigest = null; static { try { messagedigest = MessageDigest.getInstance("MD5"); } catch (NoSuchAlgorithmException e) { logger.error("MD5FileUtil messagedigest初始化失败", e); } } public static String getFileMD5String(File file) throws IOException { FileInputStream in = new FileInputStream(file); FileChannel ch = in.getChannel(); MappedByteBuffer byteBuffer = ch.map(FileChannel.MapMode.READ_ONLY, 0, file.length()); messagedigest.update(byteBuffer); return bufferToHex(messagedigest.digest()); } public static String getMD5String(String s) { return getMD5String(s.getBytes()); } public static String getMD5String(byte[] bytes) { messagedigest.update(bytes); return bufferToHex(messagedigest.digest()); } private static String bufferToHex(byte bytes[]) { return bufferToHex(bytes, 0, bytes.length); } private static 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 static void appendHexPair(byte bt, StringBuffer stringbuffer) { char c0 = hexDigits[(bt & 0xf0) >> 4]; char c1 = hexDigits[bt & 0xf]; stringbuffer.append(c0); stringbuffer.append(c1); } public static boolean checkPassword(String password, String md5PwdStr) { String s = getMD5String(password); return s.equals(md5PwdStr); } public static void main(String[] args) throws IOException { long begin = System.currentTimeMillis(); File big = new File("D:\\temp\\jre-7u11-linux-i586.tar.gz"); String md5 = getFileMD5String(big); long end = System.currentTimeMillis(); System.out.println("md5:" + md5); System.out.println("time:" + ((end - begin) / 1000) + "s"); } }
相关推荐
java源码 java 获取文件md5值(用于检测文件完整性) .
Java计算文件MD5值(支持大文件) package com.hthl.xxtd; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.security.MessageDigest; import org....
NULL 博文链接:https://hw1287789687.iteye.com/blog/1924190
java源码,用来获得文件的MD5,如果电脑上没有MD5软件,可以用这个,一运行就知道MD5值是多少。 略作修改即可计算字符串的MD5值。
SHA1或MD5算法获取文件摘要值(JAVA)
解决java 与C# MD5 不一致问题
Java 中文件的MD5和SHA-1的研究 Java中提供了一个类java.security.MessageDigest类是一种提供密码安全消息摘要如SHA-1和MD5功能的引擎类。不需要额外使用第三方组件,且支持超大文件。
使用Java语言,实现获取大文件文件流来计算md5
Java程序。可以生成文件的MD5哈希值。生成的Hash值可保存到txt文件中。程序完全可运行。
# java实现对文件的各种操作的工具类 ## 可以实现的操作有: 1. 删除单个文件 2. 删除文件夹及文件夹下的文件 3. 使用文件流对单个文件进行复制 4. 复制整个文件夹内容(包含子文件夹中的所有内容) 5. ...
文件里包含使用MD5加密算法获取文件的MD5校验码的代码,也包含MD5加密字符串的代码
AESFileUtil MD5FileUtils FileUploadUtil FileUtil MinioUtils
纯java获取指定目录下的所有问价和目录,采用递归算法,如果是文件还能得到该文件的MD5值,两个文件夹中文件和目录进行比较,发现被篡改的文件和目录,返回比较后的结果。
对于文本文件(.txt,.java,.c,.cpp),使用字符流处理 对于非文本文件(.jpg,.mp3,.mp4,.avi,.doc,.ppt,...),使用字节流处理 2.数据的流向:输入流、输出流 3.流的角色:节点流、处理流 节点流:直接从数据...
此为MD5的加密所需要的jar文件 MD5加密只需要此jar包 和如下代码将可获得加密结果,希望大家用的开心 //导入此import import cryptix.jce.provider.MD5; //MD5加密签名 String password ="1234567"; MD5 md5 = ...
用Gradle生成md5代码,直接复制到build.gradle中然后调用这个方法即可
通过指定的文件路径获取文件的32位哈希值
用来解析mp3文件的信息~还有MD5加密字符与文件的代码,方便快捷的使用哟~~
本篇文章主要介绍了详解Java无需解压直接读取Zip文件和文件内容,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
/*获取指定路径下文件的MD5值*/ public static String getFileSHA1(String filename);/*获取指定路径下文件的SHA1值*/ public static String getFileSHA256(String filename);/*获取指定路径下文件的SHA-256值*/ ...