Serial numbers, sometimes called license keys, are generated by the producer of a piece of software according to a mathematical algorithm. The software's installation package is able to verify that a key is valid using this algorithm, ensuring that only licensed users may install the software.
When a user installs a piece of software that relies on a serial number for verification, he is prompted to enter his key at some point during the install process. The installation software then analyzes the key using the same mathematical algorithm used to generate valid serial numbers. If the serial number is a possible valid result, the software assumes the user is properly licensed and allows access to the program. If the key cannot be generated using the algorithm, the installer flags it as invalid and requests a corrected serial number.
If a serial number algorithm is discovered or cracked, software pirates can generate keys that check out as valid during the install process. To combat this practice, software authors frequently patch programs to lock out known invalid keys or to change the algorithm. In addition, some publishers use additional verification methods, such as an online server that validates each key individually, preventing generated keys from being reused and helping identify keys the publisher did not issue.