1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| // 方式1:使用crypto-js import CryptoJSMD5 from 'crypto-js/md5' import CryptoJSEncLatin1 from 'crypto-js/enc-latin1' import CryptoJSEncHex from 'crypto-js/enc-hex' getFileMD5(file) { const start = new Date().getTime() return new Promise((resolve) => { const fileReader = new FileReader() fileReader.onloadend = (ev) => { const md5 = CryptoJSMD5( CryptoJSEncLatin1.parse(ev.target.result) ).toString(CryptoJSEncHex) console.log( `计算MD5, file=${file.name}, size=${file.size}, md5=${md5}, elapsed=${ new Date().getTime() - start }ms` ) resolve(md5) } fileReader.readAsBinaryString(file) }) },
// 方式2:使用spark-md5 import SparkMD5 from 'spark-md5' getFileMD5(file) { const start = new Date().getTime() return new Promise((resolve) => { const fileReader = new FileReader() fileReader.onloadend = (ev) => { const md5 = SparkMD5.hashBinary(ev.target.result) console.log( `计算MD5, file=${file.name}, size=${file.size}, md5=${md5}, elapsed=${ new Date().getTime() - start }ms` ) resolve(md5) } fileReader.readAsBinaryString(file) }) },
|