Learn something new every day
More Info... by email
Computer programmers have been using hashing functions for decades. These functions are typically used in the areas of security, data access, or data validation. A hashing algorithm is a mathematical function that converts a variable-length string of characters into a fixed numerical value. There are multiple types of algorithms available today. Each type is designed for a specific purpose.
A hash function is a mathematical function that creates a hash value from a set of character strings. When creating a hash function, it is important to safeguard against hash collisions. Unfortunately a hashing algorithm may create the same hash value with a different set of character data. This will cause a collision because two sets of data will have the same hash key.
Data encryption is one of the primary safeguards against intruders and malicious activities. The science of data encryption is known as cryptography. A hashing algorithm is the computer function that converts standard data into an encrypted format. There are many security types of hashing algorithms available today. Each function has a different complexity level for purposes of security.
The technique of hashing was first created as a method of improving performance in computer systems. A hash value is a numerical representation of characters of data. Numerical data has faster processing characteristics when searching through files of data. Many commercial databases use hash files as a method of indexing data within the database management system (DBMS).
The process of hashing has also been used as a method of protecting sensitive computer data. Hashed data requires an encryption program to convert the hash data back into a format that can be understood by human interpretation. It is nearly impossible decipher an encrypted data file without the original hashing algorithm.
An advanced hashing algorithm requires special keys that are used for the ciphering and deciphering of data. These keys are the secret ingredient for making encryption complex. The encryption key can range form 64 bits to 256 bits. As the size of the bits increases, the complexity of the hashing algorithm becomes more difficult to break.
Cryptography and hashing algorithms are managed by the National Institute of Standards and Technology (NIST). This group manages the standards for encryption functions for use in the United States government. Currently the defined standard is the advanced encryption standard (AES), which requires a 256-bit key.
@Soulfox -- the funny thing is these things aren't far removed from encryption techniques used in World War II and other conflicts. In the past, you had messages scrambled and could only be unlocked with the correct key. The only difference is that the key this day is digital instead of something that is plugged into an analog machine.
The digital key is harder to unscramble than the old analog ones, and that means that code breakers have a much harder time these days than they did in the past. That is an important point to make. One of the ways the Americans knew the Japanese were going to attack Midway was by decoding Japanese transmissions without the benefit of a key. If hashing algorithms were possible at the time, how different might the war have turned out?
Most people who have shopped online have come across a hashing algorithm without even realizing it. When a site brags about protecting data through 256 bit encryption, the site is using a hashing algorithm to protect data. For marketing reasons, though, "256 bit encryption" sounds a lot better than "hashing algorithm," though.
These algorithms are great at keeping data safe provided that some criminal doesn't get his mitts on the key to unlock the algorithm and read that data. The data, then, is only safe if the algorithm is protected.
One of our editors will review your suggestion and make changes if warranted. Note that depending on the number of suggestions we receive, this can take anywhere from a few hours to a few days. Thank you for helping to improve wiseGEEK!