A place I used to work for used to have an application from an external company which had an authorisation code idea in it.
Basically the application would take the MAC address of the network card installed, and generate a question and answer code from it. It would only provide the question code with which we would call them up with. They'd give us the answer code which we'd key into the application and as long as it matched what it expected, it would unlock it.
I don't know how the coding works for that though as it was closed-source so I couldn't see the code :(