Hashing

From Computer Science Wiki
Advanced programming[1]

A hash function is any function that can be used to map data of arbitrary size to fixed-size values. The values returned by a hash function are called hash values, hash codes, digests, or simply hashes. The values are used to index a fixed-size table called a hash table. Use of a hash function to index a hash table is called hashing or scatter storage addressing.[2]

Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string. Hashing is used to index and retrieve items in a database because it is faster to find the item using the shorter hashed key than to find it using the original value. It is also used in many encryption algorithms.[3]

Hashing.png


Benefit of hashing[edit]

One main use of hashing is to compare two files for equality. Without opening two document files to compare them word-for-word, the calculated hash values of these files will allow the owner to know immediately if they are different.

Hashing is also used to verify the integrity of a file after it has been transferred from one place to another, typically in a file backup program. To ensure the transferred file is not corrupted, a user can compare the hash value of both files. If they are the same, then the transferred file is an identical copy.

In some situations, an encrypted file may be designed to never change the file size nor the last modification date and time (for example, virtual drive container files). In such cases, it would be impossible to tell at a glance if two similar files are different or not, but the hash values would easily tell these files apart if they are different.[4]

Simple Code sample[edit]

# this python file should be used as part of your process to understand hashing. 
# please change values so you can see how hashing works! 

import hashlib

string = "hello there."
print(string)

hashed_string = hashlib.sha256(string.encode()).hexdigest()
print(hashed_string)

# Thank you to Max S for coming up with this sample

Videos[edit]

This video will give you a general introduction to hashing.

The video below helps us understand hashing within the context of blockchain.

References[edit]