当前位置:网站首页>Hash these knowledge you should also know
Hash these knowledge you should also know
2022-08-05 07:11:00 【code and thinking】
What is Hash
Hash is translated as hash in Chinese, and it is also called "hash". It is a general term for a class of functions.The input of any length (also known as pre-map, pre-image) is transformed into a fixed-length output through a hashing algorithm, and the output is the hash value.This transformation is a compressed map, that is, the space of the hash value is usually much smaller than the space of the input, and different inputs may hash to the same output, so it is impossible to determine the unique input value from the hash value.
Simply put, it is a function that compresses a message of any length into a message digest of a fixed length.
The role of Hash
hash is a function of compressing a message of any length into a message digest of a certain length.Equivalent to the fingerprint of a file.
Because the file is unlimited, the number of bits that can be represented by the mapped string is limited.Therefore, there may be different keys corresponding to the same Hash value.That's the possibility of a collision.
Hash storage data
The essence of the hash table is actually an array, and the key-value pair Entry is usually stored in the hash table.

The student number here is a key, and the hash table uses the hash function to calculate a value based on the key value. This value is the subscript value, which is used to determine where in the hash table the entry should be stored.
Hash collision solution
The solution to hash collision is open addressing method and zipper method.
Open addressing means that if the current array position 1 is occupied, it will be placed in the next position 2. If 2 is also occupied, it will continue to search until an empty position is found.

The zipper method uses a linked list. At this time, position 1 does not only store the Entry. At this time, the Entry also saves an additional next pointer, pointing to another position outside the array, and arranges Li Si in theHere, the next pointer in Zhang San's Entry points to Li Si's location, which is the stored memory address of this location.If there is still a conflict, put the conflicting Entry in a new position, and then Li Si's Entry points to it, thus forming a linked list.

Open addressing and zipping both try to find the next empty location to store the conflicting value.
Practical uses of Hash
Unique verification
- In java, it is used to judge whether the variables are equal and put into hashCode(), and together generate an integer that will not collide as much as possible
Data integrity verification:
- After downloading a file from the Internet, you can confirm whether the downloaded file is damaged by comparing the Hash value (such as MD5, SHA1) of the file.If the Hash value of the downloaded file is consistent with the Hash value given by the file provider, it proves that the downloaded file is intact
Quick Find:
- HashMap
Privacy Protection:
- When important data must be exposed, someone can choose to expose its Hash value (such as MD5) to ensure the security of the original data.For example, when logging in to a website, you can only save the hash value of the user's password. In each login verification, you only need to compare the hash value of the entered password with the hash value saved in the database. The website does not need to knowUser's password.In this way, when the website data is stolen, the user will not endanger the security of other websites because of the theft of their own password.
Author: Arrom
Link: https://juejin.cn/post/7127862424887099406
Source: Rare Earth Nuggets
边栏推荐
- PCI Pharma Services Announces Multi-Million Dollar Expansion of UK Manufacturing Facility to Meet Growing Demand for Global High Potency Drug Manufacturing Services to Support Oncology Treatment
- FPGA parsing B code----serial 4
- typescript65-映射类型(keyof)
- 【动态类型检测 Objective-C】
- 自媒体人一般会从哪里找素材呢?
- Promise (3) async/await
- Day9 of Hegong Daqiong team vision team training - camera calibration
- 【网友真实投稿】为女友放弃国企舒适圈,转行软件测试12k*13薪
- Technical Analysis Mode (7) Playing the Gap
- [instancetype type Objective-C]
猜你喜欢
随机推荐
How to avoid online memory leaks
FPGA解析B码----连载4
【LeetCode】235.二叉搜索树的最近公共祖先
LabVIEW中如何实现任意形状的不规则按键
[Tool Configuration] Summary of Common Uses of VSCode
浮点数基础知识
IO进程线程->进程间的通信->day7
对数据类型而言运算符无效。运算符为 add,类型为 text。
Technical Analysis Mode (8) Double Top and Bottom
Rapid Medical超小体积且唯一可调的取栓器获得FDA核准
Shiny02---Shiny异常解决
Hong Kong International Jewellery Show and Hong Kong International Diamond, Gem and Pearl Show kick off
1, Citrix XenDesktop 2203 AD domain system installation (1)
给网站套上Cloudflare(以腾讯云为例)
文本特征化方法总结
香港国际珠宝展及香港国际钻石、宝石及珍珠展揭幕
访问被拒绝:“microsoft.web.ui.webcontrols”的解决办法
《PyTorch深度学习实践》第十一课(卷积神经网络CNN高级版)
2022杭电多校六 1006-Maex (树形DP)
Technical Analysis Patterns (11) How to Trade Head and Shoulders Patterns








