I am learning MD5. I found a term ‘hash’ in most description of MD5. I googled ‘hash’, but I could not find exact term of ‘hash’ in computer programming.
Why are we using ‘hash’ in computer programming? What is origin of the word??
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
I would say any answer must be guesswork, so I will make this a community wiki.
Hash, or hash browns, is breakfast food made from cutting potatoes into long thin strips (smaller than french fries, and shorter, but proportionally similar), then frying the mass of strips in animal or vegetable fat until browned, stuck together, and cooked. By analogy, ‘hashing’ a number meant turning it into another, usually smaller, number using a method which still deterministically depending on the input number.
I believe the term “hash” was first used in the context of “hash table”, which was commonly used in the 1960’s on mainframe-type machines. In these cases, usually an integer value with a large range is converted to a “hash table index” which is a small integer. It is important for an efficient hash table that the “hash function” be evenly distributed, or “flat.”
I don’t have a citation, that is how I have understood the analogy since I heard it in the 80’s. Someone must have been there when the term was first applied, though.