拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 什么是哈希?哈希应用

什么是哈希?哈希应用

白鹭 - 2022-01-15 2065 0 0

这篇文章给大家讲解一下什么是哈希函数?它的使用方法和应用。

  1. 二分搜索算法(Binary Search)
  2. 浏览数据结构和算法中的树
  3. 数据结构和算法中的 AVL 树

1。什么是哈希?

Hash是英文单词,意思是越南语是hash。在烹饪中,对某物进行哈希处理意味着切割然后混合。正是从那里开始,我们在英格兰的早餐吃到了 Hash brown-油炸或油炸薯片。在计算机科学中,哈希函数接受任何长度和内容(例如字母、数字和符号)的输入,并使用数学公式来切割、混合和创建冗长的输出罐。

例如看下面的值:

 c017dcaadb04d44b6012b2a055786c77 

你认得出来吗?这取自莎士比亚十四行诗第 18 首中的 14 行诗,从“我可以把它比作夏日吗?”并创建一个只有 32 个字符的输出。

我们可以创建几乎所有数字内容的哈希:文档、图像、歌曲或任何东西。

什么是哈希?哈希应用程序

任何最底层的数字内容都只是一串数字0和1。一切都可以用二进制形式表示。你好示例 ! 在二进制 UTF-8 中是 01001000 01100101 01101100 01101100 01101111 00100001。这是哈希函数干扰的二进制代码。

您可以使用许多不同的数学公式来创建哈希。事实上,并不是所有的哈希都是长的。每个哈希函数以不同的方式合并和混合,从而产生不同的输出。对于之前的散列值,使用称为 MD5 的散列函数,它代表消息摘要。一些散列函数会创建长散列值,例如 SHA3–512(安全散列算法 3)创建 128 个字符的散列。

当在同一个哈希函数上使用相同的内容时,会得到相同的输出。这样,32 个字符的字符串有点像内容的数字指纹。让我们看看当你改变莎士比亚十四行诗中的一个词时会发生什么(第一行的夏天变成冬天)。

原文:017dcaadb04d44b6012b2a055786c77

新:ab7b6da7342ea2599198c3ba3e884b55

它们完全不同,对吧?您看不到任何连接,除了字符串是十六进制的(即使用 16 个符号、0-9 和 af,这是计算中常用的一种处理二进制性能的简单方法)。就像人类指纹是独一无二的一样,没有人像任何人一样,即使是对一段内容的微小改动也会导致一个全新的哈希值。

2。哈希应用

哈希用于加密,因为它隐藏了具有不同值的原始数据。哈希函数可用于创建一个只能通过从哈希表中查找才能解密的值。该表可以是数组、数据库或数据结构。一个好的密码散列函数是不可逆的。

什么是哈希?哈希应用程序

不同类型的压缩,例如媒体压缩和有损图像压缩(有损),可以结合散列函数来减小文件大小。通过将数据散列成更小的值,媒体文件可以被压缩成更小的片段。这种单向哈希类型是不可逆的,但它可以生成与原始数据一样接近的数据,但需要的磁盘空间更少。

  1. 当今提取文件和压缩文件的顶级软件

哈希也用于创建校验和(校验和值),确认文件的完整性。校验和是基于文件或数据块(如磁盘映像)中的位创建的小值。当校验和函数在文件的副本(例如从 Internet 下载的文件)上运行时,它会像原始文件一样创建一个哈希值。如果该文件没有创建相同的校验和,则该文件已被更改。

最后用hash来索引数据。哈希值可用于映射哈希表中的每个桶数据。每个存储桶都有一个唯一的 ID,用作指向原始数据的指针。这创建比原始数据小得多的索引,从而更有效地搜索和访问值。

标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *