hash值——软件中的唯一标识符

news/2024/12/27 5:08:39/

在软件中,“ hash”这个词有多种含义,但是我们在这里讨论的是维基百科所谓的

“cryptographic hash function”.。

 

hash是什么

简而言之,hash是字母和数字的字符串,意味着通过一个较小的、唯一的代码来识别一组信息。您可能在其他地方看到过关于hash的文章。如果您看到了类似下面这样的随机文本字符串,那么它可能是一个“ hash”

各种hash格式都有一长串听起来奇怪的名字,比如:

  1. MD5
  2. SHA1
  3. Whirlpool
  4. CRC32

但是他们都做相似的事情。哈希是每个人都可以使用的东西,从普通用户到网络安全专家。

Hash技术

hash一开始可能看起来很奇怪和复杂,但实际上它非常简单。hash有点像图像缩略图,因为与它们标识的文件相比,它们非常小。

 

文件的大小可以是1KB 或100TB,hash的大小总是相同的。hash值总是相同的; 不管文件有多大,也不管用什么计算机来计算它

hash的任务集中在一件事情上: 分配一个唯一的值。

为什么独特的值在hash中如此重要?

很久以前,我开始使用哈希表,同时试图确保我的公司报告没有问题。我当时在一家银行工作,使用 MicrosoftExcel 查找旧数据,一开始是寻找重复的条目。

幸运的是,Excel 有一个突出显示重复值的简单选项:

 

但是发现单个文本框是没有用的,整个过程中有很多类似的数字。相反,我需要找到重复的行。

要做到这一点有很多技巧,但当时,我急于抓住这些令人尴尬的数字。我决定将整行相乘(如下所示) ,然后检查结果列是否有重复的结果。

因为结果总是唯一的,所以我可以很容易地标记重复的行。

不幸的是,他们并不总是独一无二的。我遇到了一个问题,两个非常明显不同的行碰巧得到相同的乘法结果,或“假阳性。”

我需要找到一种方法来显示电子表格中每个唯一行的绝对唯一值。

不幸的是,我最终做了很多额外的工作,手动检查每个重复的行。这总比提交一份糟糕的报告要好,但我知道还有更好的方法。

不久之后,我学到了一个技巧,它可以为每一行输出一个唯一的数字: hash。这是一种贯穿整个计算过程的技术。

我为什么要用hash文件?

首先,无论文件有多大,或者使用哪台计算机来计算它,hash值总是相同的。

这种唯一性带来了有价值的信息,让你:

  1. 查找重复的文件,如查找和删除重复的照片。任何具有相同hash的文件都是重复的-您不需要打开和比较它们。
  2. 确定一个文件-您和同事正在更新同一个文件并将其上传到服务器。如果服务器不显示谁发布了什么内容,那么如何在不逐行进行更改的情况下确定哪个内容是您的?只需将您的计算机hash与远程文件hash进行比较。
  3. 确保您下载的文件是正确的。例如,如果你从一个网站得到一个软件程序,你怎么知道该网站或上传被劫持或损坏?hash可以帮助检测问题。
  4. 将权重分配给文件。如果一个程序的旧版本比最新版本工作得更好,了解hash可以让您确定使用哪一个。

尽管哈希算法在计算机出现的早期就已经存在,但是最近它们已经被用作在互联网上快速指纹识别文件的一种方法。

如何在软件安全中使用hash?

安全软件和专业人员对哈希文件的主要任务是确定文件的状态,无论是好的还是坏的。例如,病毒数据库中显示的hash应该从您的计算机上被阻止。哈希被认为是安全的和众所周知的(如 Firefox 和 Chrome 浏览器)可以安装没有问题。

 

这些检查声誉的工具大部分都内置在软件中,这意味着程序检查哈希作为其操作的一个正常部分。

如何使用hash

虽然许多hash工具通常是内置的,但是可以手动检查结果。

使用hash的一种方法是检查来自不受信任的网站的下载。一些安全研究人员甚至会检查来自受信任位置的文件的哈希值,尤其是在保存到关键工作站或服务器时。

虽然有很多工具可以做到这一点,但我使用的是用于 Windows、 Mac 和 Linux 的开源 PeaZip 归档管理器。

要查看哈希,右键单击一个文件,选择文件管理器-文件工具-校验和/哈希文件,并选择“剪贴板”选项卡。

从那里,您可以双击 SHA256值并复制(CTRL + C 或 Apple + C)。此值是安全性分析的标准。

unisca如何使用hash

unisca为我们的客户执行的一项重要工作就是将坏的、过时的或恶意软件排除在早期开发过程之外。尽可能的将安全左移,避免SDLC后期的巨大修复成本。

当分析一个新程序时,unisca会根据我们的数据库检查是否存在问题。如果它是一个已知的良好文件,它将像正常情况下一样传递。如果一个文件是未知的或者风险分析结果不良 ,它就会被阻止。完全分析之后,任何具有相同hash的文件都将以相同的方式处理。


http://www.ppmy.cn/news/33736.html

相关文章

RapidAI/paddleocr_convert:PaddleOCR中模型快速转换为ONNX格式

目录RapidAI/paddleocr_convert使用步骤更新日志RapidAI/paddleocr_convert 本仓库主要是针对性地将PaddleOCR中推理模型转换为ONNX格式。注意: 输入:推理模型的url或者本地tar路径输出:转换后的ONNX模型如果是识别模型,需要提供对…

图形视图框架 事件处理(item)

在图形界面框架中的事件都是先由视图进行接收,然后传递给场景,再由场景传递给图形项。通过键盘处理的话,需要设置焦点,在QGraphicsScene中使用setFoucesItem()函数可以设置焦点,或者图形项使用s…

技术分享 | PBM备份恢复

作者:张洪 爱可生南区 DBA 团队成员,主要负责mysql故障处理及相关技术支持。爱好旅游,摄影。 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 概述 Per…

下载并导入MySQL示例数据库employees

MySQL示例数据库employees一、下载employees数据库二、MySQL官方参考手册三、具体步骤3.1 下载test_db3.2 在test_db-master中打开cmd(进入test_db-master目录)3.3 run-install3.4 验证employee数据3.5 show databases\tables & select * from departments**3.6 select * f…

前端git必备技能,如何合并分支以及出现合并冲突后如何解决

文章目录一、合并分支二、可能出现的冲突和解决三、过程分享一、合并分支 注意,我们常说的master或main主干也可以理解为分支,可以是分支合并到主干,或分支合并到分支。 需求:cloudweb的2.6.0和2.6.1是并行开发的,现…

linux中写定时任务

场景:我们生产环境中有大量的日志记录,但是我们的磁盘没有太大,需要定时清理磁盘 文章目录crond 定时任务详解安装定时任务crontab服务启动与关闭crontab操作crontab 命令test.sh查看日志丢弃linux中的执行日志Linux进入nano模式方式一方式二…

【8】核心易中期刊推荐——人工智能与机器人

🚀🚀🚀NEW!!!核心易中期刊推荐栏目来啦 ~ 📚🍀 核心期刊在国内的应用范围非常广,核心期刊发表论文是国内很多作者晋升的硬性要求,并且在国内属于顶尖论文发表,具有很高的学术价值。在中文核心目录体系中,权威代表有CSSCI、CSCD和北大核心。其中,中文期刊的数…

【代码随想录-刷题学习JavaScript】day2-part02数组

继续数组的部分 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II 今天会有个小结 一、LeetCode977.有序数组的平方 文章讲解 视频讲解 二、LeetCode 209.长度最小的子数组 题目建议: 本题关键在于理解滑动窗口,这个滑动…