md5算法 保证下载文件的完整性

/**

* compute the the md5 of input file

* @param input file

* @return

* md5 string, or null

*/

public static String md5(File file){

try{

MessageDigest md = MessageDigest.getInstance("MD5");

InputStream fileStream = new FileInputStream(file);

byte[] buffer = new byte[1024 * 100];

int numRead = 0;

while ((numRead = fileStream.read(buffer)) > 0) {

md.update(buffer, 0, numRead);

}

fileStream.close();

byte[] res = md.digest();

return byte2hex(res);

} catch(Exception e){

return null;

}

}

用计算后的md5值与原来已经有的值进行比对,即可知道该文件是不是完整的。

时间: 2024-08-25 10:07:43

md5算法 保证下载文件的完整性的相关文章

Linux下校验下载文件的完整性(MD5,SHA1,PGP)

查看: Linux下校验下载文件的完整性(MD5,SHA1,PGP) http://blog.useasp.net/archive/2014/03/29/use-md5-sha1-or-pgp-to-check-downloaded-file-integrity-on-linux.aspx Linux下的学习开始总是艰难的,但有的时候,却发现Linux下远比Windows的操作来的实在的多——这下载文件的完整性就是其中一件,让本人觉着很爽的一件事情.在编译安装各种软件的时候,总要到各个网站上收集

MD5算法【计算文件和字符串的MD5值】

1. MD5算法是一种散列(hash)算法(摘要算法,指纹算法),不是一种加密算法(易错).任何长度的任意内容都可以用MD5计算出散列值.MD5的前身:MD2.MD3.MD4.介绍工具:CalcMD5.zip.主要作用就是[验明"真身"],字符串文件均可(确保信息传输过程中的完整性.一致性). 2. MD5算法的特点: ????1. 长度固定 ????2. 单向性 ---- 可以通过MD5计算器来计算文件或者字符串的MD5值,但是不可以通过给出的MD5值来推算出文件或者字符串. ???

MD5 算法

MD5 Message Digest Algorithm MD5(中文名为消息摘要算法第 五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护.该算法的文件号为RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992). MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致.是计算机广泛使用的杂凑算法

Java利用MessageDigest提供的MD5算法加密字符串或文件

MD5是常用的加密算法,也经常用于校验信息完整,如文件的完整性.用术语讲,MD5是一种消息摘要算法(Message Digest Algorithm).另外还有一种常用的消息摘要算法SHA1.如果想了解这些的话,可以去百度百科:MD5.SHA1.消息摘要算法. Java已经实现了MD5.SHA1算法.利用java.security.MessageDigest类就可以获取字符串和文件的MD5以及SHA1结果. 1.字符串的MD5(下面的代码有详细注释) public static String s

SHA-1,MD5算法原理

本文绝大部分内容来自<网络安全基础--应用与标准>第五版--清华大学出版社.其中蓝色部门是自己添加 安全散列函数 单向散列函数或者安全散列函数之所以重要,不仅在于消息认证(消息摘要,数据指纹),还有数字签名(加强版的消息认证)和验证数据的完整性.常见的单向散列函数有MD5和SHA 散列函数的要求 散列函数的目的是文件.消息或者其他数据块产生"指纹".为满足在消息认证中的应用,散列函数H必须具有下列性质: (1)H可适用于任意长度的数据块. (2)H能够生成固定长度的输出.

与java一致的md5算法(C++)

工作中需要对网络传输的二进制配置文件进行md5运算生成校验码,以避免在网络传输中,文件的内容发生损坏和篡改.过程中大致是这样的: 1.服务端c++,请求端java: 2.请求端POST请求服务器上的某个文件,要求传输到请求端: 3.向服务端请求文件时,服务端需要对要传输的文件内容作md5加密,生成32字符校验码,将校验码作为http头信息字段传输到请求端: 4.请求端对传过来的文件也进行MD5加密,生成的校验码和服务器传来的做比较,相同即保证了数据的完整性和合法性,并对内容进行处理,否则,丢弃.

加密算法之 MD5算法

题记:本人自测了很多次,该算法和apache的commons utils包中的MD5算法计算一致 一.针对文件内容生成MD5值 应用场景:针对文件,在传输过程由于网络原因丢帧或者被人别恶意篡改内容,可以通过源文件的MD5和下载后的文件MD5值进行比较,如果一致说明文件内容相同,否则下载的文件有问题. 该MD5代码计算这个文件内容,生成一个MD5值. import java.io.File; import java.io.FileInputStream; import java.io.FileNo

如何使用pgp证书来验证文件的完整性

下载nginx服务器时提供了pgp证书,可以验证完整性. pgp证书是这样生成的(个人理解): 1. 现找到文件的HASH码,类似于md5 2. 用私钥对其进行加密. 3. 将公钥暴露到网站上. 4. 将证书暴露到网站上. 5. 终端用户导入公钥到本地. 6. 终端用户使用公钥解密证书,拿出hash信息来验证文件的完整性. 参考列表: http://www.jb51.net/LINUXjishu/156064.html http://blog.sina.com.cn/s/blog_630bf12

MD5算法介绍及jdk自带实现方式

MD5算法,已经被人们熟知,作为一名资深或者入门级的开发者,都号称"MD5啊,知道知道".前几天程序略有小问题,原因是有的地方加密了,有的地方没加密.有个同事很得意的说,MD5就是个hash算法,很容易被解密的.当时我是无言以对了.因为俺记得MD5是不可逆的,既然不可逆,又哪里来的"解密"呢.于是我们在网上搜索"MD5解密",哇kao,竟然真的有结果,然则,事实并非那么简单,我们把MD5的一串序列放到"在线MD5解密"中去解密