一、MD5校驗概述
MD5演算法是一項公開的密碼散列函數,主要用於確保信息傳輸過程中的數據完整性,防止誤碼和篡改。MD5可以將任意長度的數據「壓縮」成一個128bit(16byte)的摘要。MD5不是加密演算法,因為無法根據MD5摘要反推出原始數據,但是MD5摘要不是絕對安全的,可以通過碰撞攻擊推出不同的原始數據對應同一個MD5值的情況。
二、Windows下MD5校驗工具使用方法
在Windows操作系統中,可以使用自帶的fciv.exe(File Checksum Integrity Verifier)工具進行MD5校驗,步驟如下:
1、下載fciv.exe工具並解壓縮到指定目錄。
$ md5checker ├── fciv.exe └── file.txt
2、打開命令提示符窗口,進入fciv.exe所在目錄。
C:\Users\admin>cd md5checker C:\Users\admin\md5checker>
3、輸入fciv.exe命令,加上待校驗的文件名或文件夾路徑。
C:\Users\admin\md5checker>fciv.exe file.txt
4、等待校驗完成,軟體會自動計算並顯示校驗值。
// // File Checksum Integrity Verifier version 2.05. // MD5 SHA-1 ------------------------------------------------------------------------------ a95729633217d786a52af1db7a8e2938 8d7aa83d99224486bae8b32dbdfb1f1d18ce4c29 file.txt
三、Python實現MD5校驗
Python標準庫中的hashlib模塊可以非常方便地進行MD5計算,代碼如下:
import hashlib def calc_md5(filename): with open(filename, mode='rb') as f: hash_obj = hashlib.md5() while True: data = f.read(4096) if data: hash_obj.update(data) else: break return hash_obj.hexdigest()
使用示例:
md5_value = calc_md5('file.txt') print(md5_value) // 輸出:a95729633217d786a52af1db7a8e2938
四、Java實現MD5校驗
Java內置的java.security.MessageDigest類可以用於實現包括MD5在內的多種加密演算法。示例代碼如下:
import java.io.File; import java.io.FileInputStream; import java.security.MessageDigest; public class MD5Util { public static String calcMD5(String filename) throws Exception { File file = new File(filename); FileInputStream fis = new FileInputStream(file); byte[] buffer = new byte[1024]; MessageDigest md5 = MessageDigest.getInstance("MD5"); int len; while ((len = fis.read(buffer)) != -1) { md5.update(buffer, 0, len); } fis.close(); return bytesToHex(md5.digest()); } private static String bytesToHex(byte[] bytes) { StringBuilder sb = new StringBuilder(); for (byte b : bytes) { sb.append(String.format("%02x", b)); } return sb.toString(); } }
使用示例:
String md5Value = MD5Util.calcMD5("file.txt"); System.out.println(md5Value); // 輸出:a95729633217d786a52af1db7a8e2938
五、MD5校驗要點
1、MD5校驗僅能檢測到發送或存儲的數據是否完整,無法檢測到數據是否被篡改。
2、MD5演算法在密碼學中被證明不是絕對安全的,針對性碰撞攻擊可能會導致校驗錯誤。
3、MD5校驗在很多情況下都需要結合其他安全措施使用,如數字簽名、SSL加密、文件加密等。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/244349.html