js:spark-md5分片计算文件的md5值

这篇具有很好参考价值的文章主要介绍了js:spark-md5分片计算文件的md5值。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

SparkMD5 is a fast md5 implementation of the MD5 algorithm.

文档

  • https://github.com/satazor/js-spark-md5
  • https://www.npmjs.com/package/spark-md5

CDN引入

<script src="https://cdn.bootcdn.net/ajax/libs/spark-md5/3.0.2/spark-md5.min.js"></script>

npm安装

npm install --save spark-md5

使用方式一:

var hexHash = SparkMD5.hash('Hi there')
console.log(hexHash)
// d9385462d3deff78c352ebb3f941ce12

使用方式二:

var spark = new SparkMD5()
spark.append('Hi')
spark.append(' ')
spark.append('there')

var hexHash = spark.end()
console.log(hexHash)
// d9385462d3deff78c352ebb3f941ce12

计算文件md5值

<script src="https://cdn.bootcdn.net/ajax/libs/spark-md5/3.0.2/spark-md5.min.js"></script>

<input
  type="file"
  id="file"
/>

<script>
  /**
   * 计算文件md5值
   */
  function getFileMd5(file) {
    return new Promise((resolve, reject) => {
      let fileReader = new FileReader()

      fileReader.onload = function (event) {
        let fileMd5 = SparkMD5.ArrayBuffer.hash(event.target.result)
        resolve(fileMd5)
      }

      fileReader.readAsArrayBuffer(file)
    })
  }

  document.getElementById('file').onchange = function (event) {
    let file = event.target.files[0]

    getFileMd5(file).then((md5) => {
      console.log(md5)
      // e311a516191b1643e3f63cb05163d11a
    })
  }
</script>

分片读取文件,并计算md5值

<script src="https://cdn.bootcdn.net/ajax/libs/spark-md5/3.0.2/spark-md5.min.js"></script>

<input
  type="file"
  id="file"
/>

<script>
  /**
   * 分片读取文件,计算最终md5值
   */
  function getFileMd5BySlice(file, chunkSize) {
    // 默认分片大小 2MB
    let defaultChunkSize = 1024 * 1024 * 2

    return new Promise((resolve, reject) => {
      chunkSize = chunkSize || defaultChunkSize

      let blobSlice =
          File.prototype.slice ||
          File.prototype.mozSlice ||
          File.prototype.webkitSlice,
        // 总分片数
        chunks = Math.ceil(file.size / chunkSize),
        currentChunk = 0,
        spark = new SparkMD5.ArrayBuffer(),
        fileReader = new FileReader()

      fileReader.onload = function (e) {
        console.log('read chunk nr', currentChunk + 1, 'of', chunks)
        spark.append(e.target.result) // Append array buffer
        currentChunk++

        if (currentChunk < chunks) {
          loadNext()
        } else {
          resolve(spark.end())
        }
      }

      fileReader.onerror = function (error) {
        reject(error)
      }

      function loadNext() {
        // 切片起始位置
        let start = currentChunk * chunkSize
        // 切片终止位置
        let end = start + chunkSize
        if (end >= file.size) {
          end = file.size
        }

        fileReader.readAsArrayBuffer(blobSlice.call(file, start, end))
      }

      loadNext()
    })
  }

  document.getElementById('file').addEventListener('change', function (e) {
    let startTime = new Date().getTime()
    let file = e.target.files[0]

    getFileMd5BySlice(file).then((res) => {
      console.log(res)
      // 52fde8264e2640cd5b95fdb123de0eba
      console.log(new Date().getTime() - startTime)
      // 4611 2M
      // 4167 10M
      // 4333 20M
      // 4070 50M
      // 4160 100M
    })
  })
</script>

参考
spark.md5.js获取文件的md5值文章来源地址https://www.toymoban.com/news/detail-459572.html

到了这里,关于js:spark-md5分片计算文件的md5值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • windows下利用python计算文件md5值

    centos下利用python查看md5和hadoop上文件md5详情见: https://blog.csdn.net/weixin_47046791/article/details/131198529?spm=1001.2014.3001.5501

    2024年02月09日
    浏览(41)
  • window,macOS,Linux计算文件MD5值,java实现例子

    打开命令行工具。在Windows系统中,可以使用\\\"cmd\\\"命令打开命令行窗口;在macOS或Linux系统中,可以使用\\\"Terminal\\\"打开终端。 进入文件所在的目录。使用\\\"cd\\\"命令进入文件所在的目录。 计算文件的MD5哈希值。在命令行中输入\\\"certutil -hashfile 文件名 MD5\\\"命令(Windows系统),或者输入

    2024年02月06日
    浏览(34)
  • uniapp使用md5加密 js使用md5加密

    文章的初衷 最近项目中使用了md5加密,为了方便还不明白怎么使用的朋友参考查阅,当然也为了方便博主再次使用所写 md5加密说明 可在不同平台使用 因为使用方法是js方法去调用的所以不局限于某个平台 我这里使用的方式是登录的时候进行加密,具体其他的使用方式,朋友们自

    2024年02月07日
    浏览(71)
  • PHP md5()函数详解,PHP计算MD5,md5()绕过,md5()漏洞原理剖析

    「作者主页」: 士别三日wyx 「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」: 对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 md5() 可以计算字符串的 「MD5散列值」 。 语法 参数 $str :需要计算的字符串

    2024年02月06日
    浏览(44)
  • 前端(js)md5加密

    1、引入md5源文件,代码如下,直接复制。 2、在页面引入md5文件。 3、使用md5加密。

    2024年02月11日
    浏览(65)
  • Vue 大文件切片上传实现指南包会,含【并发上传切片,断点续传,服务器合并切片,计算文件MD5,上传进度显示,秒传】等功能

            在Web开发中,文件上传是一个常见的功能需求,尤其是当涉及到大文件上传时,为了提高上传的稳定性和效率,文件切片上传技术便显得尤为重要。通过将大文件切分成多个小块(切片)进行上传,不仅可以有效减少单次上传的数据量,降低网络波动对上传过程的

    2024年04月28日
    浏览(49)
  • 用git bash调用md5sum进行批量MD5计算

    对于非常大的文件或者很重要的文件,在不稳定的网络环境下,可能文件的某些字节会损坏。此时,对文件计算MD5即可以校验其完整性。比如本次的 OpenStreetMap 导出包,我的学弟反馈说,有朋友通过网盘下载无法解压,并建议我增加每个文件的MD5校验。 对于文件非常多的情况

    2024年01月24日
    浏览(43)
  • Linux文件MD5校验

    1. 进入操作系统Linux中的/root目录,找到test.txt文件,并使用md5sum工具来计算出该文件的md5值,并将计算该文件md5的命令的字符串作为flag进行提交;   Flag :md5sum test.txt   2. 进入操作系统Linux中的/root目录,找到test.txt文件,并使用md5sum校验工具来计算出该文件的md5值,并将计

    2024年02月08日
    浏览(54)
  • Java获取文件的MD5

    主要是通过读取文件的字符流,然后赋值给MessageDigest对象,最后将文件流转换成16进制的字符串。

    2024年02月16日
    浏览(41)
  • 【系统】查看文件的md5值

    查看md5可以确认文件是否被篡改或者是否下载完成,网上有很多小工具,但实际上系统自带的命令也能查看。 1.Windows系统 Windows系统自带有certutil命令里面包含了查看文件哈希的命令,可以在cmd窗口执行certutil命令 2.Linux系统 Linux系统也有自带的获取文件md5的命令,可以在终端

    2024年02月15日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包