A "hash" is a mathematical function that serves as a "one way" cipher, that is, "crypts" something such that you can't easily guess what it was without knowing its original contents. However, if you want to verify that the original contents and a new set of contents are identical, you can run both through a hashing algorithm, and if the results match, then you (likely) have identical matches.
An example of using hashing is in storing passwords. In a computer system, you never want to store a password in "plain text," as it would be trivial to recover and exploit such passwords. However, you still need to be able to verify passwords, and that is where the properties of hashes come in. For instance, in the case of idkfa, I only store the hash results (hashes) of the passwords you enter. When you log in to idkfa, I perform the same hashing algorithm on your entered password, and compare it to the hash result stored in the database. If those things match, then I can assume you entered the right password. It means I can "store" your password, but have a low likelihood that your password will be immediately compromised in the event the idkfa database is compromised.
So, the competition xkcd is running is to see how well different schools can break hashes. Though hashes are generally cryptographically strong, they are still subject to brute force attacks. This means that given enough computing power or storage space (for pre-computed hashes), you can crack hashes.