精华内容
下载资源
问答
  • 主要介绍了Python简单计算文件MD5值方法,涉及Python文件读取、hash运算及md5加密等相关操作技巧,需要的朋友可以参考下
  • 主要介绍了Java计算文本MD5加密方法,结合实例形式分析了Java基于security实现md5加密算法进行文本加密相关操作技巧,需要的朋友可以参考下
  • window下计算文件的md5值方法

    千次阅读 2019-06-10 19:18:54
    C:\Users\admin>D: D:\>cd clientfile D:\clientfile>sertutil -hashfile wakeup_common_zlkc010_20180508.bin MD5

    C:\Users\admin>D:
    D:\>cd clientfile
    D:\clientfile>sertutil -hashfile wakeup_common_zlkc010_20180508.bin MD5

     

    展开全文
  • 计算文件MD5值的多种方法

    千次阅读 2019-08-22 11:13:35
    计算文件MD5值的多种方法方法一:CMD计算本地文件方法二:Java计算上传文件方法三:Java计算本地文件demo1demo2 方法一:CMD计算本地文件 进入cmd,输入命令 // F:\a.txt是文件路径 certutil -hashfile F:\a.txt MD5 ...

    方法一:CMD计算本地文件

    进入cmd,输入命令

    // F:\a.txt是文件路径
    certutil -hashfile F:\a.txt MD5
    

    如下所示:
    在这里插入图片描述

    方法二:Java计算上传文件

    import org.springframework.web.multipart.MultipartFile;
    import java.security.MessageDigest;
    import java.io.File;
    
    public String geMD5(MultipartFile file) throws Exception {
        		MessageDigest mMessageDigest  = MessageDigest.getInstance("MD5");
        		InputStream fis = file.getInputStream();
        		byte[] buffer = new byte[1024];
        		int length = -1;
        		while ((length = fis.read(buffer, 0, 1024)) > 0) {
        			mMessageDigest.update(buffer, 0, length);
        		}
        		fis.close();
        		return new BigInteger(1, mMessageDigest.digest()).toString(16);
        }
    

    方法三:Java计算本地文件

    demo1

    import org.apache.commons.codec.binary.Hex;
    import java.security.MessageDigest;
    import java.io.File;
    import java.io.FileInputStream;
    
    private String getMD5(String filePath) throws Exception {
    		File file = new File(filePath);
    		FileInputStream fis= new FileInputStream(file);
    		MessageDigest MD5 = MessageDigest.getInstance("MD5");
    		byte[] buffer = new byte[1024];
    		int length;
    		while ((length = fis.read(buffer)) != -1) {
    			MD5.update(buffer, 0, length);
    		}
    		fis.close();
    		return new String(Hex.encodeHex(MD5.digest()));
    	}
    

    demo2

    import org.apache.commons.codec.binary.Hex;
    import java.security.MessageDigest;
    import java.io.File;
    import java.io.FileInputStream;
    
    private String getMD5(String filePath) throws Exception {
    		File file = new File(filePath);
    		MessageDigest MD5 = MessageDigest.getInstance("MD5");
    		FileInputStream fis = new FileInputStream(file);
    		byte[] buffer = new byte[1024];
    		int length = -1;
    		while ((length = fis.read(buffer, 0, 1024)) > 0) {
    			MD5.update(buffer, 0, length);
    		}
    		fis.close();
    		return new BigInteger(1, MD5.digest()).toString(16);
    	}
    
    展开全文
  • MD5(Message Digest Algorithm,信息摘要算法),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列(hash value),用于确保信息传输完整一致。它后面这个数字 5 是因为它是为了取代 MD4 而...

    什么是 MD5 ?

    MD5(Message Digest Algorithm,信息摘要算法),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。它后面这个数字 5 是因为它是为了取代 MD4 而发明的。简单的理解,它的作用就是给文件一个唯一标识。 如果我们修改了一个文件的扩展名,文件可能会打不开,但是对于 MD5 来说,并没有什么改变。所以对于一个文件,进行任何的重新命名对于md5校验都是没有用的。



    MD5 的应用

    这里只提几点我见过的比较频繁的应用情况。

    下载文件校验

    因为网络并不是完美的,下载大文件的过程中可能会出错(小文件也会,但是通常越大的文件几率越大),这是很正常的现象,网络出现波动是很正常的。所以,通常有些软件的jar或开发工具会额外提供一个文件的md5值下载(因为它很小,通常认为是不会出错的),用于用户校验文件是否下载错误。但是现在网络也是越来越好了,基本上不会错误。(所以我没有使用过,如果用户的网络环境不是很好,下载完毕一定要校验一下,免得出错。)


    上传文件

    相比之下,md5值上传文件的应用范围就更大了。这里主要的用途是为了文件去重和文件过滤

    文件去重

    我们知道用户上传的文件中,一般都是有很多重复的,如最近流行的电影、电视剧、游戏或者其它的流行资源。其实它们占据了用户上传文件的很大一部分,所以对于同一份资源,只需要存储一份就可以了。试想一下,一万个用户(一万可能都少了)上传了同一份 4GB 的电影,那么总共需要磁盘容量:4*10000 GB。如果只是上传一份,对于其它用户的上传只是在本地计算文件的 md5值 ,如果相同就认为是同一个文件,那么就只需要 4GB 空间就足够了(当然,这里忽略了记录信息的空间大小,但是相比于文件本身的大小,这些信息还是很小的)。大家可以想一下,这样对于空间的节约是多么巨大的。
    大家生活中,应该经常用到,上传一个几个 GB 的大文件,居然几秒钟就完成了,但是稍微有点网络知识的都知道,网络的上传速率是小于下载速率的(这只是对于终端用户来说),下载都达不到的速度,上传更是不可能的。所以,它应该只是进行了一个文件md5值的计算过程,根据计算的结果,如果有就不上传,只是记录一下用户拥有这个文件而已。如果没有的话,就老老实实上传,当然了,这个过程通常很慢。

    文件过滤

    有一些文件涉及到版权和政策的关系,是不允许用户上传的。所以,对于用户上传文件也会进行校验,然后和后台的黑名单匹配(应该是这样的),如果匹配成功的话,那么文件是无法上传或者上传的文件已经被处理掉了。这样方法的效率很高的,通常用户所谓的乱改名操作是完全没有用的。所以,用户一定要遵守政策和相关平台的规定。



    修改文件的 MD5 值

    一般情况下,只要改变了文件的二进制内容,文件的md5值一定会改变的。通常有利用压缩文件的方式,将多个文件压缩上传的方式,这样压缩文件的 md5值也会改变,但是有的平台也是可以解压文件的,所以这样也不是万能的。但是通过程序修改和还原文件的二进制数据还是比较容易地,使用Java的流几乎可以对与文件进行任何操作(例如对于文件的每个字节进行加密,这样想还原这个文件就是很难的,或者只是加密一段或者首先创建一个文件,先向文件写入一段固定的数字,再写入相关文件的数据,这样也是很不错的方法。)。对于文件来说,我们可以简单地把它看出是一连串连续地二进制流(逻辑上),将它合并(增加)或者截断(减少)是很简单地操作,这里就是简单的涉及文件 和 IO流的知识了。

    我上次写了一个关于文件合并操作的程序,可以将文本、图片和视频进行合并,如果感兴趣,可以参考一下:文件合并(图片+视频),修改md5值,隐藏文件



    一个简单的计算 md5 的程序

    这个程序是Java网络编程上面的,这里去掉了线程,简化了一下操作,反正只是用于计算md5值,不需要用户的其它操作。

    import java.io.BufferedInputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.security.DigestInputStream;
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    
    import javax.xml.bind.DatatypeConverter;
    
    public class TestMD5 {
    	public static void main(String[] args){
    		for (String filepath : args) {
    			String md5 = computeMD5(new File(filepath));
    			System.out.println(md5);
    		}
    	}
    	
    	
    	private static String computeMD5(File file) {
    		DigestInputStream din = null;
    		try {
    			MessageDigest md5 = MessageDigest.getInstance("MD5");
    			//第一个参数是一个输入流
    			din = new DigestInputStream(new BufferedInputStream(new FileInputStream(file)), md5);
    			
    			byte[] b = new byte[1024];
    			while (din.read(b) != -1);
    		
    			byte[] digest = md5.digest();
    			
    			StringBuilder result = new StringBuilder(file.getName());
    			result.append(": ");
    			result.append(DatatypeConverter.printHexBinary(digest));
    			return result.toString();
    		} catch (NoSuchAlgorithmException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		} finally {
    			try {
    				if (din != null) {
    					din.close();
    				}
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    		return null;
    	}
    }
    
    

    运行结果

    在这里插入图片描述

    修改 MD5 值

    这里有两个图片,对它们进行合并,注意我这里的合并,不是通常所说的文件合并(例如合成九宫格图片),而是将文件的二进制数据合并。
    在这里插入图片描述

    先计算文件的 md5 值,注意下面的 Ahusky.jpeg 是上面的 husky.jpeg 的重命名,可以看出来对于md5值来说并没有变化,所以这是同一个文件。
    在这里插入图片描述

    然后将文件合并,这里用到的程序是我上面关于文件合并里面介绍的。可以进入了解详情,这里不再介绍了。
    在这里插入图片描述

    计算合并后文件的 md5 值
    在这里插入图片描述

    展开全文
  • 前面介绍过Python计算文件md5值方法,这里分析一下Python检测文件MD5值的另一种实现方法。 概述: MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2、MD3和MD4发展而来。MD5算法的...
  • 在本篇内容中小编为大家分享了关于易语言取文件MD5值方法以及相关知识点,需要的朋友们学习下。
  • 计算MD5值方法

    千次阅读 2012-06-07 20:04:42
    public static string GetMD5(string sDataIn)   { MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); byte[] bytValue, bytHash;   bytValue = System
    1. public static string GetMD5(string sDataIn) 
    2.        { 
    3.            MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); 
    4.            byte[] bytValue, bytHash; 
    5.            bytValue = System.Text.Encoding.UTF8.GetBytes(sDataIn); 
    6.            bytHash = md5.ComputeHash(bytValue); 
    7.            md5.Clear(); 
    8.            string sTemp = ""
    9.            for (int i = 0; i < bytHash.Length; i++) 
    10.            { 
    11.                sTemp += bytHash[i].ToString("X").PadLeft(2, '0'); 
    12.            } 
    13.            return sTemp.ToLower(); 
    14.        } 
    展开全文
  • Python计算字符串或者文件md5值使用hashlib模块,hashlib主要提供字符串加密的功能,支持md5,sha1, sha224, sha256, sha384, sha512等算法。这里我们只用到md5。原来在python2中还支持md5模块,但这个模块在python ...
  • Java计算文件MD5值

    千次阅读 2019-02-28 18:27:59
    在文件上传下载相关的操作中,我们通常会遇到需要计算文件MD5的场景,计算文件MD5值方法计算字符串的MD5值有些类似,这里先来介绍普通的计算字符串的MD5方法。 commons-codec这个jar给我们提供了一个MD5实现,...
  • vbs计算文件md5值

    2015-05-04 23:22:38
    网上有很多计算md5的小工具,但还是觉得vbs方便,且不用担心病毒什么的。 使用方法:将文件拖到md5.vbs上即会弹窗显示md5值,并复制到剪切板。
  • 今天小编就为大家分享一篇python 获取字符串MD5值方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • python 实现大文件md5值计算

    千次阅读 2019-03-12 16:29:04
    hashlib.md5(文件内容)实现了对文件的md5计算,注意参数为文件内容而不是文件路径。 import hashlib with open('2.jpeg','rb') as f: data = f.read() d5 = hashlib.md5(data) print(d5.hexdigest())...
  • 计算文件的MD5值

    2016-04-17 02:20:49
    运用分段读取的方法可以大文件计算文件MD5和sha1的,来比对两个文件是否完全相同
  • Golang 计算MD5值示例

    千次阅读 2019-04-12 18:42:07
    Golang提供了"crypto/md5"包用来计算md5值,使用起来简单方便,解决了我长久以来的疑问^_^ 一种是直接调用md5计算 package main import ( "crypto/md5" "fmt" ) func main() { data := []byte("crypted data...
  • WinMD5 1.2 能够计算压缩文件的md5值,通过md5可能判断自已的文件是不是在传输过程中被破坏了。 计算方法是把rar文件直按托到winmd5文件上。
  • excel 中计算 MD5方法 直接引入到excel 文件中 进行MD5 计算 excel 中计算 MD5方法 直接引入到excel 文件中 进行MD5 计算
  • 获取url路径下的文件md5值,JAVA自带的commons-codec包就提供了获取16进制MD5值方法。 import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; ...
  • C#获取文件MD5值或者字符串MD5值方法

    千次阅读 2017-10-31 15:42:58
    /// /// 获取文件的MD5值 /// /// 文件全路径 /// public static string GetMD5HashFromFile(string fileName) { try { FileStream
  • 本篇文章是对使用java获取md5值的两种方法进行了详细的分析介绍,需要的朋友参考下
  • 比较两个文件是否相同,一般都是比较文件的MD5值是否相同,java中计算MD5值方法如下: private MessageDigest mMessageDigest = null; try { mMessageDigest = MessageDigest.getInstance("MD5"); } catch ...
  • 以下是我的实现, 可计算32位和16位的md5值. 代码如下:#include <stdio>#include <stdlib>#include <string>#include “md5.h”char *MD5_file (char *path, int md5_len){ FILE *fp = fopen (path, ...
  • 主要介绍了C#计算字符串哈希MD5、SHA)的方法,以实例形式较为详细的分析总结了C#计算字符串哈希的各种常用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • MD5Util获取文件MD5值

    2015-09-18 17:14:06
    用于获取文件的MD5值,用于获取文件的MD5值

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 83,018
精华内容 33,207
热门标签
关键字:

md5值计算方法