Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do 25-character product keys work?

Microsoft products and other products often have a product key that is 5 groups of 5 characters, like this:

ABCDE-12345-ABCDE-12345-VWXYZ

How does the product know if the key is valid? Some sort of cryptography? Is there a library if I want to use this kind of product key in my code?

like image 940
Eyal Avatar asked Dec 01 '10 05:12

Eyal


People also ask

How do product keys work?

A software licence key (also known as a product key) certifies that a copy of a program is original. It is usually a unique string of numbers and characters, and online activation or 'calling home' is often required in order to verify that two identical product keys are not being used at the same time.

Do cheap product keys work?

Often, yes. They do work, but just for a little while. Microsoft usually catches on eventually and blacklists the stolen, illegitimate product key, causing it to stop working.

How many digits is a Microsoft product key?

A Windows product key is a 25-character code used to activate Windows.

What is the point of a product key?

A product key, also known as a software key, serial key or activation key, is a specific software-based key for a computer program. It certifies that the copy of the program is original.


1 Answers

You might want to have a look at this article on how to implement a serial number validation function. It also goes into some advanced techniques such as how to keep on top of keygens, leaked keys, etc.

In short, there are typically three underlying fields in such a key:

  • the actual serial number, which the article calls a "seed"
  • some verification data; only part of the verification data is actually checked by the code
  • a checksum, CRC or other simple typo-proofing mechanism

By only implementing part of the verification data checking in your code, you can do things like "genuine validation" (in which case the rest of the verification happens on your server) or trip up keygens by checking different subsets of the validation data in new releases.

like image 153
Jeffrey Hantin Avatar answered Oct 15 '22 03:10

Jeffrey Hantin