Hashing
Hashing refers to the process of converting input data of arbitrary length into a fixed-size string of characters, typically produced by a hash function. The output is commonly called a hash value or hash code. A hash function is deterministic: the same input always yields the same hash. A good hash function also aims to distribute outputs uniformly and be efficient to compute. The output length is fixed for a given hash function, regardless of input size.
There are cryptographic hash functions and non-cryptographic hash functions. Cryptographic hashes, such as SHA-256 and SHA-3,
Common applications include using hashes in hash tables to map keys to buckets; in content-addressable storage
Limitations and concerns include the possibility of hash collisions, since many inputs can share the same hash.