前端crypto-js, 文件加密,判断相同文件、图片(MD5,SHA256)

文章目录

  • 前情提要
  • 应用场景
  • 实战解析
  • 最后

前情提要

在这里插入图片描述
大家好,今天我们来接触一个库crypto-js
在这里插入图片描述
没错,上面是有道翻译的截图,为了我们得到的信息更权威,这个库是用来加密的,但介绍是说,已经停止维护,但并不影响我们在前端项目中的使用,所以学学也没有坏处


应用场景

判断图片是否相同:这个是我最近的需求,借此机会我顺便学习了一些关于文件一些知识点,下面分享给大家,学习之前我们最好先要知道的一些概念.
什么是FileReader

MD5(Message-Digest Algorithm 5,消息摘要算法第5版)是一种被广泛使用的密码哈希函数,它可以产生出一个128位(16字节)的哈希值,通常表示为32个十六进制数字。MD5的设计是为了让不同的输入数据产生不同的哈希值,并且理论上无法从哈希值反向推导出原始数据。
然而,值得注意的是,MD5算法在密码学应用中已经被认为是不安全的,因为它存在碰撞(collision)的弱点。

SHA-256(Secure Hash Algorithm 256-bit)是一种密码学哈希函数,属于SHA-2(安全散列算法2系列)哈希函数家族的一部分。SHA-256算法可以将任意长度的数据块计算出一个固定长度的输出值,该输出值通常是256位(32字节)。
总的来说,SHA-256是一种安全、可靠且广泛应用的哈希算法,它提供了一种高效的方法来验证数据的完整性和一致性。如需更多关于SHA-256的信息,建议查阅密码学相关书籍或咨询该领域的专家。

是的这三个知识点是我们判断相同图片所需要清楚的概念,我们要做的可以分为三个步骤:

  1. 控件获取文件信息
  2. fileReader读取文件,转成文件buffer
  3. crypto算法,计算出固定长度的输入值,进行判断

实战解析

<script setup lang="ts">
import { ref } from 'vue'
import CryptoJS from 'crypto-js' //4.2.0defineProps<{ msg: string }>()const count = ref(0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/1698.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

亿发:新修订器械GSP重大变化,医疗器械GSP软件助力适应科学监管

随着医疗器械行业的快速发展和监管要求的提升&#xff0c;国家药监局近期发布了新修订的医疗器械GSP&#xff08;Good Storage Practice&#xff09;规范&#xff0c;旨在加强医疗器械流通环节的质量管理和监督&#xff0c;确保医疗器械的安全、有效和可追溯。这一重大变化为医…

万益蓝Wonderlab益生菌:吃雪糕的自由,我终于找回来了!

虽然现在不是夏天&#xff0c;但是我必须要来说一下&#xff01;我不仅在夏天可以吃雪糕&#xff01;冬天吃也完全没有问题&#xff01; 夏天&#xff0c;对于很多人来说&#xff0c;是雪糕、冷饮和冰镇西瓜的代名词。但对于我&#xff0c;这简直就是个“禁区”。每次看着别人…

SpringBoot项目启动的时候直接退出了?

SpringBoot项目启动的时候直接退出了&#xff1f; 如下图&#xff1a; 在启动SpringBoot项目的时候仅仅用了1.209s&#xff0c;然后直接退出了&#xff0c;也没有出现启动的项目对应的服务器端口号&#xff1f;为什么会这样呢&#xff1f;因为既然有服务器端口号 那么肯定会有…

神经网络学习工具分享(一)

1.Roboflow 标注数据集&#xff0c;并自动转换为可直接训练的格式。 Roboflow: Give your software the power to see objects in images and video 2.Papers With Code 既可以看论文&#xff0c;也可以连接论文上面github上面的代码。 The latest in Machine Learning | …

【php开发工程师系统性教学】——Laravel框架(验证码)的配置和使用的保姆式教程

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

如何用python在树莓派实现舵机缓慢转动?(模块封装可适配接口)

1.简介 使舵机缓慢从160度转向5度&#xff0c;然后再缓慢转回160度&#xff0c;需要在set_servo_angle函数中添加一些逻辑来逐步改变角度&#xff0c;而不是直接设置为目标角度。可以通过在两个角度之间分步改变角度来实现这一点。 2.示例 代码中&#xff0c;添加了一个函数gr…

MySQL的事务相关的语句的使用

MySQL的事务相关的语句的使用 事务是数据库管理系统执行过程中的一个程序单位&#xff0c;由一个或多个数据库操作组成。MySQL作为一款流行的关系型数据库管理系统&#xff0c;支持事务处理&#xff0c;允许用户定义一系列的操作&#xff0c;这些操作要么完全执行&#xff0c;…

数仓建模—数仓架构发展史

数仓建模—数仓架构发展史 时代的变迁,生死的轮回,历史长河滔滔,没有什么是永恒的,只有变化才是不变的,技术亦是如此,当你选择互联网的那一刻,你就相当于乘坐了一个滚滚向前的时代列车,开往未知的方向,不论什么样的技术架构只有放在当前的时代背景下,才是有意义的,…

MySQl-8.3.0版本安装下载教程(超详细保姆级教程)

第一步&#xff0c;去百度找到MySQl官网 第二步,找到DOWNLOAD&#xff08;下载&#xff09; 第三步 第四步 第五步 第六步.选择倒数第2个 第七步 第八步然后根据步骤安装就好了

MultiCD工具:创建一个多引导Linux USB驱动器

众所周知&#xff0c;拥有一个可安装多个可用操作系统的 CD 或 USB 驱动器在各种情况下都非常有用。无论是为了快速测试或调试某些内容&#xff0c;还是只是重新安装笔记本电脑或 PC 的操作系统&#xff0c;这都可以为你节省大量时间。 在本文中&#xff0c;将介绍如何使用名为…

最新win11配置cuda以及cudnn补丁教程

1、首先使用指令 nvidia-smi 查看电脑支持的**最高cuda**版本&#xff0c;例如&#xff1a;本机 12.2 2、进入CUDA下载cuda安装包 https://developer.nvidia.com/cuda-toolkit-archive 2、点击上方绿色的链接&#xff0c;按照图中序号选择的即可&#xff0c;最后点击下载。 …

VUE识别图片文字OCR(tesseract.js)

效果:1&#xff1a; 效果图2&#xff1a; 一、安装tesseract.js npm i tesseract.js 二、静态页面实现 <template><div><div style"marginTop:100px"><input change"handleChage" type"file" id"image-input"…

计算机网络—— book

文章目录 一、概述1.互联网的核心部分1&#xff0e;电路交换的主要特点2&#xff0e;分组交换的主要特点 2.计算机网络的性能1&#xff0e;速率2&#xff0e;带宽3&#xff0e;吞吐量4&#xff0e;时延5&#xff0e;利用率 3.计算机网络体系结构协议与划分层次具有五层协议的体…

深度学习之视觉特征提取器——VGG系列

VGG 提出论文&#xff1a;1409.1556.pdf (arxiv.org) 引入 距离VGG网络的提出已经约十年&#xff0c;很难想象在深度学习高速发展的今天&#xff0c;一个模型能够历经十年而不衰。虽然如今已经有VGG的大量替代品&#xff0c;但是笔者研究的一些领域仍然有大量工作选择使用VG…

【git】Git回退版本常用命令及多种场景应用指南

Git回退版本常用命令及多种场景应用指南 在使用Git进行版本控制时&#xff0c;回退版本是一个常见的需求&#xff0c;无论是开发中的误操作&#xff0c;还是代码版本的调整&#xff0c;都可能涉及到需要回滚到某个特定的版本。Git提供了多种命令来帮助我们有效地管理和回退版本…

MVCC(多版本并发控制)

MVCC&#xff08;多版本并发控制&#xff0c;Multi-Version Concurrency Control&#xff09;是一种并发控制方法&#xff0c;用于解决数据库中多个事务同时执行时可能产生的数据一致性问题。MVCC 在数据库中通过维护多个数据版本&#xff08;记录历史版本&#xff09;来提供高…

SpringBoot整合RocketMQ异步顺序消息DEMO

RocketMQ版本4.9.4 pom <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.2.2</version></dependency> yml rocketmq:producer:retry-times-when-send…

Debezium系列之:Debezium2.6稳定版本Oracle数据库Debezium Connector的属性参数详解

Debezium系列之:Debezium2.6稳定版本Oracle数据库Debezium Connector的属性参数详解 一、连接器属性二、必需的 Debezium Oracle 连接器配置属性三、Debezium Oracle 连接器数据库架构历史配置属性四、用于配置生产者和消费者客户端的传递数据库架构历史属性五、Debezium 连接…

使用go_concurrent_map 管理 并发更新缓存

在后台服务中&#xff0c;为了提速&#xff0c;我在内存还做了一个告诉缓存来管理用户信息&#xff0c;根据更新通知&#xff0c;或者定时去redis中同步信息&#xff0c;那么在加载或者更新某个用户元素时&#xff0c;要防止并发&#xff0c; 当&#xff1a; 1&#xff09;如…

【nodejs】express-generator项目--创建接口及数据库连接

文章目录 一、创建接口1、路由routes&#xff08;1&#xff09;新建路由文件&#xff08;2&#xff09;注册路由 2、控制器controller&#xff08;1&#xff09;新建controller文件&#xff08;2&#xff09;代码 3、services&#xff08;1&#xff09;新建services文件&#x…