The concept of NP-Hard is, as its name suggests, kind of hard to grasp. Here's the idea: some problems are reduceable to other problems. For instance, solving a linear equation like ax + b = 0 is reduceable to the problem of solving quadratic equations by stating the problem as 0x2 + ax + b = 0.

A given problem is NP-Hard if it takes at least as long as every other problem in the NP complexity class. That means that you can reduce any problem in NP (which stands for "nondeterministic polynomial time") to the original problem in polynomial time.

NP-Hard is not the same as NP-Complete. For a problem to be NP-Complete, it must be NP-Hard and be verifiable in polynomial time. That is, if you are given a possible answer, you can use an algorithm that takes O(nk) steps to determine if the answer is correct. The NP-Complete node has a little more thorough explanation if your mind's not blown already.