A key generator (keygen) is a cryptographic tool used to generate product keys, which are unique alpha-numeric sequences that tell an installer program that the user that initiated the install owns a license of the software. A key generator tries to generate a correct product key that allows the installation of the software to finish. Because of this, the keygen is often associated with software piracy, cracking and hacking, which is often true. However, there are also keygens not used in piracy; software distributors themselves have key generators that generate large numbers of unique keys that are then associated with each copy of the software they are selling. In their most basic functions, key generators try to emulate the key sequence required by a program for installation. This allows bootlegged copies of software to be distributed, often for free, and then installed by anyone without the need to pay for an actual license for a product which should include the product key.
The creation of key generators and cracking software is rampant because of the retail cost of legitimate software. For example, productivity tools like Microsoft Office or Adobe Suite cost hundreds to thousands of dollars for a single copy, which is too expensive for many people around the world. This results in the massive distribution of key generators and cracked copies of software.Most modern software has other means of validation than a product key to ensure that the software is legally licensed and not pirated. A key generator may allow the user to install the software but validation over the Internet would then stop the software from working.
However, hackers and crackers use more than the key generator in order to illegally use software. Some keygens are equipped with spoofing servers that intercept the communication between the software and the actual servers, providing it with the validation reply it is expecting from the real servers, thereby tricking the software into thinking that it has been validated.