当前位置:网站首页>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
边栏推荐
猜你喜欢
(四)旋转物体检测数据roLabelImg转DOTA格式
Shiny02---Shiny exception solution
字节面试流程及面试题无私奉献,吐血整理
IO process thread -> communication between processes -> day7
2022熔化焊接与热切割操作证考试题及模拟考试
FPGA解析B码----连载4
Source code analysis of Nacos configuration service (full)
It turns out that Maya Arnold can also render high-quality works!Awesome Tips
给网站套上Cloudflare(以腾讯云为例)
真实字节跳动测试开发面试题,拿下年薪50万offer。
随机推荐
RK3568环境安装
Redis
Freeswitch操作基本配置
给网站套上Cloudflare(以腾讯云为例)
typescript67-索引查询类型
2022 Fusion Welding and Thermal Cutting Operation Certificate Exam Questions and Mock Exams
《PyTorch深度学习实践》第十一课(卷积神经网络CNN高级版)
17-VMware Horizon 2203 virtual desktop-Win10 manual desktop pool floating (seventeen)
Japan Sanitary Equipment Industry Association: Japan's warm water shower toilet seat shipments reached 100 million sets
ndk编译so库
在STM32中使用printf函数
TCP sticky packet unpacking problem + solution
mysql使用in函数的一个小问题
IO进程线程->进程间的通信->day7
Redis进阶
typescript68-索引查询类型(查询多个)
Database table insert data
不能比较或排序 text、ntext 和 image 数据类型
Rapid Medical超小体积且唯一可调的取栓器获得FDA核准
怎么样避免线上内存泄漏