1.MD5简述
MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改。MD5 全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意长度的信息逐位进行计算,产生一个二进制长度为128位(十六进制长度就是32位)的“指纹”(或称“报文摘要”),不同的文件产生相同的报文摘要的可能性是非常非常之小的(题外:那就可能会存在)。
2.校验方法
widow亲测成功(加空行,校验不同)
linux–亲测成功
java–亲测成功
2.1windows下
在cmd下进入 要查看的文件目录, 然后输入命令
certutil -hashfile 文件名称.文件类型 MD5
如
certutil -hashfile webpro.war MD5
注意后面有个MD5,不然会生成一个其他的值。
2.2.linux下
md5sum 文件名
2.3自定义java法
package com.lifeng;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.math.BigInteger;
import java.security.MessageDigest;
/**
* 获取文件的md5值,从而比对两个文件是否相等
* @Description: TODO
* @author lifeng
* @date 2016年3月1日 上午9:34:15
* @version V1.0
*/
public class MD5 {
public static String getFileMD5(String filePath) throws Exception{
File file = new File(filePath);
InputStream in = new FileInputStream(file);
MessageDigest digest = MessageDigest.getInstance("MD5"); ;
byte buffer[] = new byte[1024];
int len;
while((len = in.read(buffer))!=-1){
digest.update(buffer, 0, len);
}
BigInteger bigInt = new BigInteger(1, digest.digest());
return bigInt.toString(16);
}
public static void main(String[] args) throws Throwable{
String f1 = getFileMD5("E://1.tmp");
String f2 = getFileMD5("E://2.tmp");
System.out.println(f1.equals(f2)+"=="+f1);
}
}
2.4 校验软件(略)
参考:
windows下查看文件md5值
linux比较两个文件是否一样(linux命令md5sum使用方法)
shell脚本如何实现将两个war包进行对比
通过文件的md5码比对两个文件是否一样