最近有要在前端获取文件 md5 值,因此想到了crypto-js

实现方式

使用 JavaScript 内置的 FileReader 配合 crypto-js

实例代码

// 导入 crypto-js (如果使用的传统网页开发,script标签引入即可)
import CryptoJS from 'crypto-js'

/**
 * @description 获取文件的 MD5 值
 * @param {Blob || File} file 待处理文件(可以为 input 上传的文件或者 blob 对象)
 * @return Promise<string>
 */
function fileMd5Sum(file) {
  return new Promise((resolve) => {
    const fileReader = new FileReader()
    fileReader.onloadend = (ev) => {
      resolve(
        CryptoJS.MD5(CryptoJS.enc.Latin1.parse(ev.target.result)).toString(
          CryptoJS.enc.Hex
        )
      )
    }
    fileReader.readAsBinaryString(file)
  })
}

注意

异常记得自己处理哦