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碼比對兩個檔案是否一樣