文件读取MD5的意义在于验证文件的完整性和确保数据的准确传输。以下是一些具体用途:
-
数据完整性验证:
- 通过计算文件的MD5哈希值,可以在传输后对比接收端和发送端的MD5值,确保文件在传输过程中未被篡改或损坏。
-
文件校验:
- 在下载文件时,提供MD5校验值可以帮助用户验证下载文件是否与原始文件一致,防止文件被恶意篡改。
-
重复文件检测:
- 通过比较不同文件的MD5值,可以快速识别出相同内容的文件,节省存储空间。
-
数据一致性检测:
- 在数据库或文件系统中,通过MD5值来检测数据的一致性和完整性,防止数据在存储或传输过程中出现错误。
-
安全性检查:
- MD5值可以用于检查文件是否被恶意软件感染或修改,提供一个简单的安全性检查方法。
import SparkMD5 from 'spark-md5'
export const md5ByFile = (file) => new Promise((resolve, reject) => {
const fileR = new FileReader() // 创建一个reader用来读取文件流
fileR.readAsArrayBuffer(file) // 把文件读成ArrayBuffer 主要为了保持跟后端的流一致
fileR.onload = async e => {
const spark = new SparkMD5.ArrayBuffer()
spark.append(e.target.result)
resolve({ ...e.target, md5: spark.end() })
}
})