Patent ID: 8001383

Claim:
A method for activating an instance of a software product, comprising: receiving, by a computer, a product key comprising constituent components that include a serial number, an authenticator value, and a checksum, wherein the serial number uniquely identifies the instance of the software product, and wherein the authenticator value correlates to the serial number in a manner known only to an authenticator, and wherein the authenticator value was previously generated by hashing the serial number with a secret key, and wherein at least a portion of the authenticator value is considered an offline authenticator value, and wherein the checksum was previously calculated from the serial number and the authenticator value; parsing, by the computer, the received product key into its constituent components that include the serial number, the authenticator value that includes the offline authenticator value, and the checksum; determining, by the computer and based on the parsed checksum, that the parsed product key does not include an error; transmitting, in response to a determination to perform online authentication, the parsed serial number and the parsed authenticator value to the authenticator that is configured to receive and validate the received authenticator value based on the received serial number and the secret key; displaying, in response to a determination to perform offline authentication, the parsed offline authenticator value that is subsequently provided to an offline authenticator that receives and validates the received offline authenticator value; receiving, in response to the validated authenticator value or the validated offline authenticator value, a notification; and authorizing, in response to the notification being positive, access to the instance of the software product.