What's the purpose in hashing information?

前端 未结 5 431
时光说笑
时光说笑 2021-01-31 10:44

After being taught how to create a hash table in class, I don\'t understand when hashing data would be useful. It seems to me that all hashing does is storing information in se

5条回答
  •  轻奢々
    轻奢々 (楼主)
    2021-01-31 11:35

    Hashing can be used for many purposes:

    1. It can be used to compare large amounts of data. You create the hashes for the data, store the hashes and later if you want to compare the data, you just compare the hashes.

    2. Hashes can be used to index data. They can be used in hash tables to point to the correct row. If you want to quickly find a record, you calculate the hash of the data and directly go to the record where the corresponding hash record is pointing to. (This assumes that you have a sorted list of hashes that point to the actual records)

    3. They can be used in cryptographic applications like digital signatures.

    4. Hashing can be used to generate seemingly random strings.

    Here are the applications of hash functions that wikipedia lists:

    1. Finding duplicate records
    2. Finding similar records
    3. Finding similar substrings
    4. Geometric hashing

    Now regarding hash table, here are some points to note:

    If you are using a hash table, the hashes in the table should be in a sorted manner. If not, you will have to create an index on the hash column. Some implementations store the hash separately in a sorted manner and point to the original record.

    If somebody is storing hashes in a semi-random order, it must be either because of the above reasons or because they just want to store the message digest of the information for comparing, finding duplicates etc. and not as an index to the data.

提交回复
热议问题