spark-md5根据文件内容生成hash

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

当我们上传文件的时候,文件内容不会根据文件名修改而改变,不同文件类型都可以用进制工具查看(十六进制编辑器UltraEdit),对应的文件内容也是固定的。那些文件续传或者秒传的功能就是根据文件内容生成唯一的hash,上传之前让后台判断是否传递过,或者传递了哪些,再根据状态续传或者秒传。

今天分享的是spark-md5这个包,可以根据内容获取唯一的hash。

安装:

npm install --save-dev spark-md5

有两种hash,一个是hex hash十六进制,一个是raw hash(不知道翻译成什么):

import SparkMD5 from 'spark-md5'

var hexHash = SparkMD5.hash('Hi there'); // hex hash
var rawHash = SparkMD5.hash('Hi there', true); // OR raw hash (binary string)
console.log(hexHash); //d9385462d3deff78c352ebb3f941ce12
console.log(rawHash); //Ù8TbÓÞÿxÃRë³ùAÎ

还有另外一种用法,但是raw hash获得的结果不一样:

var spark = new SparkMD5();
spark.append('Hi');
spark.append(' there');
var hexHash = spark.end(); // hex hash
var rawHash = spark.end(true); // OR raw hash (binary string)
console.log(hexHash);//d9385462d3deff78c352ebb3f941ce12
console.log(rawHash);//Ԍُ

所以用十六进制的hash应该是更好一些,这边试了一下文件的hash:

<input type="file" @change="getFile">

getFile(file){
  let fileReader = new FileReader();
  fileReader.onload = function (e) {
    let hexHash = SparkMD5.hash(e.target.result);
    console.log(hexHash);
  };
  fileReader.readAsDataURL(file.target.files[0]);
}

这边要用FileReader把文件内容变成文本或者base64或者ArrayBuffer,官方文档提供的就是文本和ArrayBuffer,而FileReader就有这几个API,FileReader可以把Blob转成其他格式的数据,主要是三个方法readAsText(转化成文本)、readAsArrayBuffer把Blob转成ArrayBuffer、readAsDataURL把Blob转成Base64。

测试了一下,改了文件名输出的hash还是一样,内容修改了,加个空格输出的hash也会改变。

当我们要做断点续传的时候,就把文件用Blob.prototype.slice把文件切片,然后把每个切片的文件获取到hash,再加上数组index,组成一个一个的文件名,跟流一起传给后台。

欢迎关注个人订阅号 coding个人笔记文章来源地址https://www.toymoban.com/news/detail-505657.html

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

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

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

相关文章

  • 【导出Word】如何使用Java+Freemarker模板引擎,根据XML模板文件生成Word文档(只含文本内容的模板)

    这篇文章,主要介绍如何使用Java+Freemarker模板引擎,根据XML模板文件生成Word文档。 目录 一、导出Word文档 1.1、基础知识 1.2、制作模板文件 1.3、代码实现 (1)引入依赖 (2)创建Freemarker工具类 (3)测试案例代码 (4)运行效果 Word文件有两种后缀格式,分别是:doc和docx,

    2024年02月13日
    浏览(45)
  • AICG,人工智能自动生成内容——根据文本生成图像,视频,音频

    1、什么是AICG? 什么是AICG? AICG是指人工智能自动生成内容。 通过算法模型,将文本转化为图像、音频、视频等多种形式。 在数字时代,AICG已经成为各种领域中不可或缺的一部分。 AICG的应用场景 AICG在数字营销、广告制作、电影制作等领域广泛应用。 可以用于教育、娱乐

    2024年02月14日
    浏览(37)
  • linux 根据指定内容搜索所有文件

    在Linux中,你可以使用 grep 命令来搜索包含指定内容的文件。 grep 命令用于在文件中搜索指定的模式,并将匹配的行打印出来。 下面是使用 grep 命令搜索所有文件的示例: 在上面的命令中, -r 选项表示递归地搜索目录下的所有文件, \\\"指定内容\\\" 是你要搜索的内容, /path/to

    2024年02月14日
    浏览(38)
  • 【go语言】结构体数据填充生成md错误码文件

     这里使用pongo2这个模版引擎库进行md文件渲染GitHub - flosch/pongo2: Django-syntax like template-engine for Go Go 语言原生如下示例:

    2024年01月18日
    浏览(34)
  • 基于 Stable Diffusion免费快速无代码生成自己AI虚拟主播,并根据内容实现多语言播报

    如何免费快速无代码生成自己AI虚拟主播? Stable Diffusion 是一种文本到图像模型。它主要用于根据文本描述生成详细的图像。Stable Diffusion 是 midjourney 和 DALLE-2 等工具的绝佳替代品。这个工具的伟大之处在于您可以在您的计算机上本地运行它或使用 Dream Studio 或 Hugging Face 等服

    2024年02月10日
    浏览(41)
  • 【】生成文件MD5图像,类似于GitHub的像素风格头像

    我想通过文件的md5生成关于这个md5的图像,类似于GitHub的随机像素头像,用处是让这个md5更加直观,也能用于生成各种用户头像,跟GitHub一样。 网上搜了一下,没有现成的方法,只能有一篇类似的文章可以借鉴一下,但是那篇是随机的字符串,而我的是文件,是固定的字符串

    2024年02月01日
    浏览(29)
  • go生成文件md5、sha1摘要简单示例

    go官方文档 https://pkg.go.dev/crypto/md5 已经给出如何使用该package生成文件或者字节数组的摘要值, 参照即可。 摘要值 不是对文内容的加密,它主要用来进行checksum,就是验证两个文件内容是否一致,是否被篡改或者变化了。 “crypto/sha256” “crypto/md5” “crypto/sha1” 根据文档介

    2024年02月12日
    浏览(45)
  • 深度学习实战20(进阶版)-文件智能搜索系统,可以根据文件内容进行关键词搜索,快速找到文件

    大家好,我是微学AI,今天给大家带来深度学习实战项目-文件智能搜索系统,文件智能搜索系统是一种能够帮助用户通过文件的内容快速搜索和定位文件的软件系统。 随着互联网和数字化技术的普及,数据和信息呈现爆炸式增长的趋势,文件管理和搜索变得越来越困难。传统

    2024年02月13日
    浏览(36)
  • 数据备份文件生成--根据表名生成对应的sql语句文件

    最近客户有个需求,希望在后台增加手动备份功能,将数据导出下载保存。 当然,此方法不适用于海量数据的备份,这只适用于少量数据的sql备份。 这是我生成的sql文件,以及sql文件里的insert语句,已亲测,可以直接执行: 项目是SSM框架,接下来就展示我的实现代码: 首先

    2024年02月07日
    浏览(29)
  • python读取.txt文件中某些关键字后面的内容 并根据该数据画图

    感谢一下悦姐帮忙 然后画图,其实两个代码可以放在一个里面 最后贴个图:

    2024年02月09日
    浏览(31)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包